基于音頻接口的數(shù)據(jù)傳輸模塊設(shè)計
3.2 數(shù)據(jù)格式
音頻輸入輸出線路上傳輸?shù)臄?shù)據(jù)信號采用差分曼徹斯特編碼,不進行載波調(diào)制與解調(diào),直接在音頻線路上傳輸數(shù)據(jù)編碼信號。具體協(xié)議機制如下:
(1)基于音頻輸入輸出接口的數(shù)據(jù)傳輸方法是一種串行通訊方法,參考標準同步串行通訊協(xié)議,采用差分曼徹斯特編碼,其特點為每發(fā)送一位至少有一個跳變,以適應在只能傳輸交流的音頻輸入輸出線路上傳輸數(shù)據(jù)。通信信號中使用中間時刻的跳變來表示發(fā)送的0或1,第一個跳變的如果是正跳變表示1,如果是負跳變表示0,之后的跳變與前一個跳變進行差分,由相比較的結(jié)果決定是1或0,如果當前位跳變方向與前一位的跳變方向相同,則表示為0,否則表示為1。采用差分曼徹斯特編碼,通信雙方的同步允許差半位時間,同步差半位時間內(nèi)接收的數(shù)據(jù)也不受影響。
(2)數(shù)據(jù)傳輸是雙工方式,從手機輸出數(shù)據(jù)的傳輸使用音頻輸出線路,進入手機的數(shù)據(jù)傳輸使用音頻輸入線路,發(fā)送數(shù)據(jù)前讓總線空閑準備,提示接收方做好接收準備。總線空閑準備是用連續(xù)發(fā)送8位以上的0來表示。
(3)串行通訊采用幀起始標志進行同步,幀起始可以從任意一位開始,串行通訊的幀起始標志采用與標準串口通信同步中一樣的標識,即連續(xù)發(fā)送6個1,即發(fā)送字符0x7e表示發(fā)送了幀起始標志。
(4)串行通訊采用幀結(jié)束標志表示本次數(shù)據(jù)發(fā)送結(jié)束,進入總線空閑狀態(tài)。連續(xù)發(fā)送7個1,即發(fā)送字符0x7f表示發(fā)送了幀結(jié)束。串行通訊中,線路上傳輸?shù)臄?shù)據(jù)的單位為位,發(fā)送Byte時首先發(fā)送最高位,最后發(fā)送最低位,發(fā)送數(shù)據(jù)時字節(jié)間沒有間隔。發(fā)送數(shù)據(jù)時,數(shù)據(jù)中很可能有連續(xù)的6個1,這與幀起始標志和幀結(jié)束標志相同,會造成通訊歧義。為消除歧義,規(guī)定當發(fā)送數(shù)據(jù)時,連續(xù)發(fā)送5個1后,必須發(fā)送一位無效的0,再接著發(fā)送其他數(shù)據(jù)。而接收到連續(xù)的5個1后,需要刪除接著收到的0。這連續(xù)的5個1并非一定在1個Byte中,例如,兩個Byte 0x0f和0xc0,每個Byte都沒有連續(xù)的5個1,但先發(fā)送0x0f后發(fā)送0xc0時,就有連續(xù)的5個1了,需要動態(tài)插入、刪除一位0。
(5)所述基于音頻輸入輸出接口的串行通訊中,編碼信息流一般以塊形式表示,一個信息流塊包含:塊頭和塊負載信息,線路上傳輸?shù)臄?shù)據(jù)幀格式如圖4所示。
4 結(jié)束語
根據(jù)嵌入式開發(fā)的一般原理,設(shè)計了數(shù)據(jù)傳輸模塊的結(jié)構(gòu),進而完成數(shù)據(jù)傳輸模塊的硬件設(shè)計,軟件設(shè)計中完成了主控系統(tǒng)、各相關(guān)電路的控制程序,采用差分曼徹斯特碼傳輸數(shù)據(jù),能滿足串行通信的同步要求,保障了數(shù)據(jù)傳輸?shù)姆€(wěn)定性。
評論