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