新聞中心

EEPW首頁 > 消費(fèi)電子 > 設(shè)計應(yīng)用 > 基于SEP4O2O微處理器的動作控制MP3的設(shè)計

基于SEP4O2O微處理器的動作控制MP3的設(shè)計

作者: 時間:2010-04-09 來源:網(wǎng)絡(luò) 收藏

2.3
Linux操作系統(tǒng)作為平臺,其良好的系統(tǒng)可定制、可移植性使得其在嵌入式領(lǐng)域占有重要的地位。Linux有很多好的進(jìn)程通信機(jī)制,如內(nèi)存共享、管道、多線程、信號等,這里選擇信號作為通信的橋梁。利用Linux內(nèi)部完整的串口驅(qū)動程序可以很輕松地通過在串口的軟中斷接收程序中發(fā)射信號給指定的程序,也就是播放器程序,然后播放器程序接收并判斷信號類型,給相應(yīng)全局變量賦與相應(yīng)的控制值,使得介入控制變得可能。控制使用的是播放器自帶的機(jī)制,使得更加地穩(wěn)定可靠。使用Madplay作為播放軟件,其默認(rèn)的控制是通過終端鍵盤來實(shí)現(xiàn)的。在時為了達(dá)到用產(chǎn)生的信號量來控制播放,同時不去大量修改Madplay的程序源碼,可以通過截斷播放器與鍵盤的聯(lián)系,與串口連接上,這樣就可以基本不用修改上層的機(jī)制就能夠控制整個播放器的。
具體系統(tǒng)移植和需要的源代碼軟件包詳見www.a(chǎn)rmfans.net
2.4 播放
MC9S08QG8與SEP4020之間通過串口來進(jìn)行通信。
基本的串口操作原則是先保存串口原始的參數(shù),然后再設(shè)置程序所需要的參數(shù),程序結(jié)束后恢復(fù)現(xiàn)場。串口一般操作如下:
串口操作需要的頭文件

串口軟中斷設(shè)置,填充SIGIO結(jié)構(gòu)體,分配相應(yīng)中斷函數(shù):

本文引用地址:http://m.butianyuan.cn/article/166741.htm

在操作系統(tǒng)中加入自動播放腳本,使得系統(tǒng)在開機(jī)時完成搜索MP3文件,建立播放列表,啟動Madplay播放器等操作。腳本代碼如下:

發(fā)生時MC9S08QG8向SEP4020發(fā)送一個動作信號,然后SEP4020中的Linux內(nèi)核就會發(fā)送一個SIGIO(串口信號)給各個用戶進(jìn)程。Madplay生程捕捉該信號,并且讀取串口上的消息,用以判斷動作的形式。在Madplay程序中需要加入兩個模塊。第一個模塊用于讀取串口上的消息,具體實(shí)現(xiàn)方法是打開并讀取串口設(shè)備文件/dev/ttySl來獲取消息,然后按照設(shè)定會從設(shè)備上讀到4種串口信號,對應(yīng)4個ASCII字符“L,R,U,D”分別對應(yīng)四種不同的動作;第二個模塊是響應(yīng)信號的處理函數(shù),一旦Linux內(nèi)核接收到SIGIO串口信號,Madplay進(jìn)程就進(jìn)入軟中斷讀?。痙ev/ttySl上的串口消息。甫一判斷出動作,Madplay就用kill函數(shù)向本進(jìn)程發(fā)送相應(yīng)的信號來控制播放。

3 總結(jié)
本文介紹了針對SEP4020處理器等硬件在Linux操作系統(tǒng)下的動作控制MP3的流程,為這種控制方式的MP3提供了一個范例。以下是一些改進(jìn)的建議:作為手持式設(shè)備,動作控制MP3對于能耗的要求比較高,所以設(shè)計時必須考慮多使用一些低功耗的器件替代高功耗的器件。動作控制的MP3在運(yùn)動中是受限制的,MP3的判斷會受到比較大的干擾。所以如果動作采樣方法和動作判斷算法難以有很大的改進(jìn),為方便繼續(xù)使用應(yīng)當(dāng)考慮給MP3加上其他的控制方式,暫時取代動作控制。


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉