<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ARM720T的SEP4O2O 嵌入式處理器的動作控制MP3的設計

          基于ARM720T的SEP4O2O 嵌入式處理器的動作控制MP3的設計

          作者: 時間:2010-04-13 來源:網(wǎng)絡 收藏
          識別是一個很熱門的話題。蘋果公司繼推出具有轟動效應的多點觸控技術后又籌備申請自己的識別專利。的識別簡單的說就是利用加速度傳感器,檢測在空間上的速度變化,通過算法,提取動作。動作識別在很多方面都有應用,比如Wii、手機感應游戲、四槳飛行器等,但是目前很少甚至沒有將其用在上的。當今的電子產(chǎn)品的一大潮流就是用動作。試想一下一個沒有任何觸摸、機械按鍵的,只要你前后左右的晃動就能進行所有最基本的操作,既靈動又時尚,這應當是一種全新的操作體驗。本文將探討如何這種通過動作來進行正??刂频?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/MP3">MP3。
            1硬件平臺
            1.1 SEP4020
            本文所述驅動程序SEP4020。SEP4020是由東南大學國家專用集成電路系統(tǒng)工程技術研究中心的一款,采用0.18μm標準CMOS的工藝,內嵌ASIXCORE(32位RISC內核,兼容,帶8kB指令數(shù)據(jù)Cache和全功能MMU)。SEP4020芯片中集成各種功能,包括:
          8/16位SRAM/NORFALSH接口,16位SDRAM接口
          硬件NANDFLASH控制器,支持NANDFLASH自啟動,支持軟件/硬件ECC校驗
          10M/100M自適應以太網(wǎng)MAC,支持RMII接口
          64kByte高速片上SRAM
          USBl.1Device,全速12Mb/s
          支持I2S音頻接口
          支持MMC/SD卡
          LCD控制器,支持640×480×16位TFT彩屏和STN黑白、灰度屏
          RTC,支持日歷功能/WatchDog,支持后備電源
          10通道TIMER,支持捕獲、外部時鐘驅動和MATCHOUT
          4通道PWM,支持高速GPIO
          4通道UART,均支持紅外
          2通道SSI,支持SPI和Microwire協(xié)議
          2通道SmartCard接口,兼容IS07816協(xié)議
          支持最多97個GPIO,14個外部中斷
          支持鏈表DMA傳輸和外部DMA傳輸
          片上DPLL,支持多種功耗模式:IDLE、SLOW、NORMALSLEEP
            1.2MC9S08QG8
            本文中的動作捕捉判斷部分由MC9S08QG8來控制完成。MC9S08QG8是Freescale公司的一款單片機,它的性能如下:
          8通道、10位模數(shù)轉換器
          3個通訊接口:SCI、SPI、IIC
          4k或8k可重編程FLASH存儲器
          內置在線仿真器(ICE)
            1.3MMA7620
            動作控制MP3中動作的感應是由MMA7620完成的。MMA7620是Freescale公司的一款三向加速度傳感器,它的性能如下:
          3軸加速度感應和輸出,可同時測量三個坐標軸(x、y、z)的值并由三個通道輸出
          4種靈敏度可供選擇
          有休眠模式
            2動作控制MP3的設計
            2.1動作捕捉
            一個動作從開始到結束一定會有加速度的產(chǎn)生,所以可以通過檢測伴隨著動作產(chǎn)生的加速度的大小和方向來判斷動作。要測量加速度的大小就需要一個加速度傳感器,將所得到的加速度以模擬量的形式表示,然后將傳感器所得到的模擬量通過一個AD轉換模塊轉換成以方便后續(xù)計算。但是查找資料發(fā)現(xiàn),如果單方面的使用一個AD變換器將從加速度傳感器中得到的電壓信號轉換成為并要求達到期望的精度將導致成本的大幅度提高,然而現(xiàn)有很多的單片機中已經(jīng)集成了AD轉換模塊,并且整個單片機的價格要低于單買單個三通道AD轉換芯片。更為可觀的是還可以利用單片機本身的處理功能對AD轉換所得到的進行處理,預判動作。而且單片機中集成了很多的通信協(xié)議,簡單而健壯。綜合以上考慮,如果選用單片機代替AD轉換模塊就可以減輕核心板的負擔和整個項目的開發(fā)難度。
            加速度傳感器可以選擇使用Freescale公司的MMA7620三軸加速度傳感器。單片機可以選擇使用Freescale公司的MC9S08QG8單片機,它集成的八通道9bitAD轉換模塊正好和MMA7620的三通道輸出相匹配,體積也很小,適用于便攜設備。
            圖1是手持部分的原理圖,包括單片機和傳感器PTA0、PTAl、PTA2:輸入:分別接三向加速度傳感器的x、y、z端口輸出,讀取加速度傳感器的x、y、z軸的模擬數(shù)據(jù)。
          PTA3:輸出;接三向加速度傳感器的Sleep引腳用于使傳感器處于休眠狀態(tài)從而降低功耗和鎖定,避免運動時的干擾。
          PTTB0:輸入;作為串口接收腳用于接收從核心板傳來的命令。
          PTFBl:輸出;作為串口發(fā)送腳用于向核心板發(fā)送由加速度傳感器所測的經(jīng)過單片機處理后所得到的動作信息。
          PTB6、PTB7:輸出;接加速度傳感器的gselect引腳從而控制加速度傳感器的靈敏度。
          2.2動作判斷
            利用Freescale公司的FreeMASTER軟件,可以很方便地進行程序在線調試,查看程序所有全局變量,具體軟件和使用方法請查詢Frees-cfle管方網(wǎng)站。以下得到的數(shù)據(jù)為使用FreeMASTER欺件,以時間和AD轉換值為坐標繪圖得到。
            每次每個方向采樣20個數(shù)據(jù),由于第一個數(shù)據(jù)的可靠性比較大,所以采用每組數(shù)據(jù)的第一個數(shù)據(jù)作為比較依據(jù)。經(jīng)過多次測試,當x方向的數(shù)值小于80時為右轉動作,x的方向的數(shù)值大于170時為左轉動作,y方向的數(shù)值小于70時為向上抬的動作,y方向的數(shù)值大于160時為向下壓的動作。雖然以上數(shù)據(jù)能表示動作,但人的動作時間相對單片機處理分析速度差別還是太大。為了解決這個問題,使單片機和動作同步,可以把前兩次的動作記錄下來,根據(jù)前兩次的動作對當前動作進行過濾:如果連續(xù)幾個相同的動作,就判斷為一次動作,不相同則切換。動作的切換必然帶有前后動作的變化,記憶之前的動作就可以判斷出有無動作切換。這樣的動作識別方法比較簡單且容易實現(xiàn),如果要實現(xiàn)更為精確的識別,則需要對算法進一步優(yōu)化。圖2為右搖時AD轉換器所得到的結果。圖3為前后左右擺動數(shù)據(jù)。
            在判別動作后,通過串口通信協(xié)議,發(fā)送雙辦約定的動作ID,具體見表l
            通過串口協(xié)議,核心板也可以對傳感器和單片機進行一定的控制,包括傳感器靈敏度調節(jié),鎖定休眠功能,使得后期的測試開發(fā)更加的方便。
            2.3MP3控制
            Linux操作系統(tǒng)作為平臺,其良好的系統(tǒng)可定制、可移植性使得其在領域占有重要的地位。Linux有很多好的進程通信機制,如內存共享、管道、多線程、信號等,這里選擇信號作為控制通信的橋梁。利用Linux內部完整的串口驅動程序可以很輕松地通過在串口的軟中斷接收程序中發(fā)射信號給指定的程序,也就是播放器程序,然后播放器程序接收并判斷信號類型,給相應控制全局變量賦與相應的控制值,使得介入控制變得可能??刂剖褂玫氖遣シ牌髯詭У臋C制,使得更加地穩(wěn)定可靠。使用Madplay作為MP3播放軟件,其默認的控制是通過終端鍵盤來實現(xiàn)的。在設計時為了達到用動作產(chǎn)生的信號量來控制播放,同時不去大量修改Madplay的程序源碼,可以通過截斷播放器與鍵盤的聯(lián)系,與串口連接上,這樣就可以基本不用修改上層的機制就能夠控制整個播放器的動作。
            2.4MP3播放
            MC9S08QG8與SEP4020之間通過串口來進行通信。
            基本的串口操作原則是先保存串口原始的參數(shù),然后再設置程序所需要的參數(shù),程序結束后恢復現(xiàn)場。串口一般操作如下:
            串口操作需要的頭文件
          串口軟中斷設置,填充SIGIO結構體,分配相應中斷函數(shù):
            在操作系統(tǒng)中加入自動播放腳本,使得系統(tǒng)在開機時完成搜索MP3文件,建立播放列表,啟動Madplay播放器等操作。腳本代碼如下:
            動作發(fā)生時MC9S08QG8向SEP4020發(fā)送一個動作信號,然后SEP4020中的Linux內核就會發(fā)送一個SIGIO(串口信號)給各個用戶進程。Madplay生程捕捉該信號,并且讀取串口上的消息,用以判斷動作的形式。在Madplay程序中需要加入兩個模塊。第一個模塊用于讀取串口上的消息,具體實現(xiàn)方法是打開并讀取串口設備文件/dev/ttySl來獲取消息,然后按照設定會從設備上讀到4種串口信號,對應4個ASCII字符“L,R,U,D”分別對應四種不同的動作;第二個模塊是響應信號的處理函數(shù),一旦Linux內核接收到SIGIO串口信號,Madplay進程就進入軟中斷讀取/dev/ttySl上的串口消息。甫一判斷出動作,Madplay就用kill函數(shù)向本進程發(fā)送相應的信號來控制播放。
            
            本文介紹了針對SEP4020處理器等硬件在Linux操作系統(tǒng)下的動作控制MP3的設計流程,為這種控制方式的MP3設計提供了一個范例。以下是一些改進的建議:作為手持式設備,動作控制MP3對于能耗的要求比較高,所以設計時必須考慮多使用一些低功耗的器件替代高功耗的器件。動作控制的MP3在運動中是受限制的,MP3的判斷會受到比較大的干擾。所以如果動作采樣方法和動作判斷算法難以有很大的改進,為方便繼續(xù)使用應當考慮給MP3加上其他的控制方式,暫時取代動作控制。 linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();