嵌入式智能射頻光傳輸模塊設計
3.3 數(shù)據(jù)收發(fā)程序設計[5]
數(shù)據(jù)的收發(fā)包括:單片機接收上位機數(shù)據(jù),單片機向上位機發(fā)送數(shù)據(jù),單片機接收CC1000數(shù)據(jù)和單片機向CC1000發(fā)送數(shù)據(jù)。這里僅討論單片機通過串口1接收中斷接收CC1000數(shù)據(jù)過程,這是整個數(shù)據(jù)收發(fā)程序設計中的難點。
本設計中,單片機與CC1000之間采用曼徹斯特同步模式進行數(shù)據(jù)的接收和發(fā)送。在發(fā)射模式下(單片機向CC1000發(fā)送數(shù)據(jù)),PCLK提供發(fā)送數(shù)據(jù)時鐘信號,DIO用于數(shù)據(jù)輸入,CC1000 自動完成對數(shù)據(jù)的譯碼。在接收模式下,PCLK 提供接收數(shù)據(jù)時鐘信號,在DIO提供數(shù)據(jù),CC1000自動完成數(shù)據(jù)編碼和同步工作。
(1)數(shù)據(jù)幀結(jié)構(gòu)
在曼徹斯特同步模式下,數(shù)據(jù)幀由訓練碼、同步碼、前導碼和有效數(shù)據(jù)構(gòu)成。在本設計中,訓練碼為連續(xù)交替出現(xiàn)的0 和1,共40個;同步碼為連續(xù)出現(xiàn)的8個0;前導碼為連續(xù)的8個1。當數(shù)據(jù)中出現(xiàn)符合前面所有格式數(shù)據(jù)時,接下來的數(shù)據(jù)就是要接收的有效數(shù)據(jù)。當數(shù)據(jù)符合幀格式時,單片機才認為該數(shù)據(jù)為合格數(shù)據(jù),從而進行接收,這樣可以保證接收數(shù)據(jù)的準確性,降低傳輸誤碼率。
(2)串口1接收中斷服務程序
在通信過程中CC1000 具有3 種狀態(tài):IDLE(空閑)、RX(接收數(shù)據(jù))、TX(發(fā)送數(shù)據(jù))。由于CC1000與單片機之間是半雙工模式通信,因而RX 與TX 兩狀態(tài)要互斥。數(shù)據(jù)的接收由串口中斷完成:UART0接收中斷接收來自上位機的數(shù)據(jù),UART1接收中斷則接收來自CC1000的數(shù)據(jù)。UART1中斷服務程序數(shù)據(jù)傳輸流程如圖6所示。在接收過程中,為了避免數(shù)據(jù)幀長度過長,當接收的有效數(shù)據(jù)超過緩沖區(qū)空間時,單片機判定此幀無效。
3.4 參數(shù)監(jiān)測與控制
單片機通過A/D轉(zhuǎn)換完成對參數(shù)的采集和數(shù)字化,這一過程由定時器中斷完成。監(jiān)測數(shù)據(jù)被存儲,并通過PC機顯示出來。增益控制和偏置電壓則通過單片機的D/A轉(zhuǎn)換來控制。有關(guān)這方面的軟件設計,由于篇幅有限,這里不再贅述。
4.總結(jié)
嵌入式智能光模塊可以實現(xiàn)直放站近端機和遠端機的遠程光纖通信,在此基礎上,PC 機只需通過RS232/485總線與近端機通信,便可完成對近端機和遠端機的實時監(jiān)控,方便工作人員對直放站的調(diào)試和維護。經(jīng)測試,CC1000之間的FSK通信在20dB 光衰條件下的誤幀率優(yōu)于0.1%,保證了監(jiān)控的可靠性。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論