基于音頻接口的數(shù)據(jù)傳輸模塊設(shè)計(jì)
1 數(shù)據(jù)傳輸模塊的結(jié)構(gòu)設(shè)計(jì)
接口是智能終端系統(tǒng)與外界的連接電路,具有如下功能:(1)尋址能力。對送來的片選信號(hào)進(jìn)行識(shí)別。(2)輸入/輸出功能。根據(jù)讀/寫信號(hào)決定當(dāng)前進(jìn)行的是輸入操作還是輸出操作。(3)數(shù)據(jù)轉(zhuǎn)換功能。并行數(shù)據(jù)與串行數(shù)據(jù)的轉(zhuǎn)換或兩種不同數(shù)據(jù)格式之間的轉(zhuǎn)換。(4)信號(hào)識(shí)別。識(shí)別就緒信號(hào)、忙信號(hào)等。(5)中斷管理。發(fā)出中斷請求信號(hào)、接收中斷響應(yīng)信號(hào)、發(fā)送中斷類型碼的功能。(6)復(fù)位。接收復(fù)位信號(hào),從而使接口本身以及所連的外設(shè)進(jìn)行重新啟動(dòng)。(7)可編程。用軟件來決定其工作方式,用軟件來設(shè)置有關(guān)的控制信號(hào)。(8)檢測信息。一些接口還可根據(jù)具體情況設(shè)置其檢測信息。
基于音頻輸入輸出接口的數(shù)據(jù)傳輸方法可以彌補(bǔ)數(shù)據(jù)接口不一致的缺點(diǎn),并擴(kuò)充音頻接口的應(yīng)用。在實(shí)現(xiàn)傳輸音頻模擬信號(hào)的系統(tǒng)上交換數(shù)字信號(hào),設(shè)計(jì)難點(diǎn)是如何通過模擬信號(hào)進(jìn)行數(shù)據(jù)通信,需要專門設(shè)計(jì)一種嚴(yán)格的通信機(jī)制或通信協(xié)議,保證基于手機(jī)音頻輸入輸出接口的數(shù)據(jù)傳輸可靠。
如果把終端作為主導(dǎo)裝置,由其產(chǎn)生位時(shí)鐘信號(hào)、命令選擇信號(hào)和數(shù)據(jù),但在綜合系統(tǒng)中,識(shí)別發(fā)送端比較困難。設(shè)計(jì)采用差分曼徹斯特編碼的數(shù)據(jù)傳輸協(xié)議,開發(fā)了可下載手機(jī)軟件,并為外設(shè)存儲(chǔ)設(shè)備設(shè)計(jì)了實(shí)現(xiàn)編解碼及傳輸協(xié)議的嵌入式系統(tǒng)。模塊結(jié)構(gòu)示意如圖1所示。
外部裝置通過音頻輸入輸出接口與智能終端進(jìn)行數(shù)據(jù)通信,數(shù)據(jù)信號(hào)在主控模塊中進(jìn)行編解碼處理,再通過控制裝置讀取、寫入外部介質(zhì),并存儲(chǔ)數(shù)據(jù)。數(shù)據(jù)傳輸?shù)木唧w方式中,外設(shè)裝置通過插入手機(jī)外置話筒音頻輸入接口或音頻線路輸入接口的連接線發(fā)送數(shù)據(jù)信號(hào)給手機(jī),外設(shè)裝置通過插入手機(jī)的外置耳機(jī)音頻接口或音頻線路輸出接口的連接插線,接收手機(jī)發(fā)送出的數(shù)據(jù)信號(hào)。
2 數(shù)據(jù)傳輸模塊的硬件設(shè)計(jì)
外部數(shù)據(jù)傳輸裝置由濾波電路、主控模塊、編解碼電路、讀寫裝置組成。濾波電路分離固定頻率交流信號(hào)與數(shù)據(jù)信號(hào);讀寫裝置包含一個(gè)標(biāo)準(zhǔn)曼徹斯特編解碼電路,讀寫解碼電路采用BS730Q讀寫專用解碼芯片,采用單軌道讀寫;實(shí)現(xiàn)的主控模塊電路選用低功耗的ARM微控制器,內(nèi)部有可編程工作寄存器,可以方便地與主機(jī)通信,但要有自己的數(shù)據(jù)協(xié)議,主控模塊對雙向信號(hào)進(jìn)行編解碼處理的過程是:(1)主控電路模塊將讀寫裝置傳入的曼徹斯特編碼數(shù)據(jù)信息解碼成國標(biāo)數(shù)據(jù),再編碼為差分曼徹斯特編碼數(shù)據(jù)信號(hào),送到連接手機(jī)話筒接口或線路音頻輸入接口的傳輸線上。(2)主控電路模塊從連接手機(jī)耳機(jī)接口或線路音頻輸出接口的傳輸線上接收差分曼徹斯特編碼數(shù)據(jù)信號(hào),解碼成國標(biāo)數(shù)據(jù),再編碼為標(biāo)準(zhǔn)曼徹斯特編碼數(shù)據(jù)信息,送入讀寫裝置。電路設(shè)計(jì)如圖2所示。
3 數(shù)據(jù)傳輸模塊的軟件設(shè)計(jì)
3.1 設(shè)計(jì)線程
通信雙方的手機(jī)終端采用軟件方法實(shí)現(xiàn),結(jié)構(gòu)如圖3所示。通過程序?qū)囊纛l輸入接口采集到的音頻信號(hào)進(jìn)行差分曼徹斯特解碼,并送到音頻輸出接口,程序由3個(gè)線程構(gòu)成,當(dāng)數(shù)據(jù)傳輸服務(wù)程序在手機(jī)上啟動(dòng)后形成3個(gè)線程:(1)創(chuàng)建一個(gè)音頻交流發(fā)送線程,負(fù)責(zé)設(shè)置輸出最大音量,生成固定頻率音頻交流信號(hào)并發(fā)送到音頻輸出線路上。(2)創(chuàng)建一個(gè)監(jiān)聽音頻輸入接口數(shù)據(jù)的線程,負(fù)責(zé)對從音頻輸入接口采集到的音頻信號(hào),進(jìn)行差分曼徹斯特解碼,解碼輸出數(shù)據(jù)存放在接收數(shù)據(jù)緩存,通過調(diào)用外部業(yè)務(wù)程序注冊的回調(diào)函數(shù),通知外部業(yè)務(wù)程序注冊取得傳入的數(shù)據(jù)。(3)主線程循環(huán)等待發(fā)送數(shù)據(jù)緩存中的數(shù)據(jù)存入事件,當(dāng)外部業(yè)務(wù)程序在數(shù)據(jù)要發(fā)送時(shí),將要發(fā)送的數(shù)據(jù)放入共享的發(fā)送數(shù)據(jù)緩存時(shí),數(shù)據(jù)存入事件發(fā)生,所述的主線程取到要發(fā)送的數(shù)據(jù),進(jìn)行差分曼徹斯特編碼,再用操作系統(tǒng)的音頻控制接口函數(shù)發(fā)送到音頻輸出接口。
評論