嵌入式智能射頻光傳輸模塊設計
3.3 數據收發程序設計[5]
數據的收發包括:單片機接收上位機數據,單片機向上位機發送數據,單片機接收CC1000數據和單片機向CC1000發送數據。這里僅討論單片機通過串口1接收中斷接收CC1000數據過程,這是整個數據收發程序設計中的難點。
本設計中,單片機與CC1000之間采用曼徹斯特同步模式進行數據的接收和發送。在發射模式下(單片機向CC1000發送數據),PCLK提供發送數據時鐘信號,DIO用于數據輸入,CC1000 自動完成對數據的譯碼。在接收模式下,PCLK 提供接收數據時鐘信號,在DIO提供數據,CC1000自動完成數據編碼和同步工作。
(1)數據幀結構
在曼徹斯特同步模式下,數據幀由訓練碼、同步碼、前導碼和有效數據構成。在本設計中,訓練碼為連續交替出現的0 和1,共40個;同步碼為連續出現的8個0;前導碼為連續的8個1。當數據中出現符合前面所有格式數據時,接下來的數據就是要接收的有效數據。當數據符合幀格式時,單片機才認為該數據為合格數據,從而進行接收,這樣可以保證接收數據的準確性,降低傳輸誤碼率。
(2)串口1接收中斷服務程序
在通信過程中CC1000 具有3 種狀態:IDLE(空閑)、RX(接收數據)、TX(發送數據)。由于CC1000與單片機之間是半雙工模式通信,因而RX 與TX 兩狀態要互斥。數據的接收由串口中斷完成:UART0接收中斷接收來自上位機的數據,UART1接收中斷則接收來自CC1000的數據。UART1中斷服務程序數據傳輸流程如圖6所示。在接收過程中,為了避免數據幀長度過長,當接收的有效數據超過緩沖區空間時,單片機判定此幀無效。

3.4 參數監測與控制
單片機通過A/D轉換完成對參數的采集和數字化,這一過程由定時器中斷完成。監測數據被存儲,并通過PC機顯示出來。增益控制和偏置電壓則通過單片機的D/A轉換來控制。有關這方面的軟件設計,由于篇幅有限,這里不再贅述。
4.總結
嵌入式智能光模塊可以實現直放站近端機和遠端機的遠程光纖通信,在此基礎上,PC 機只需通過RS232/485總線與近端機通信,便可完成對近端機和遠端機的實時監控,方便工作人員對直放站的調試和維護。經測試,CC1000之間的FSK通信在20dB 光衰條件下的誤幀率優于0.1%,保證了監控的可靠性。
主站蜘蛛池模板:
荆门市|
健康|
博乐市|
军事|
乌海市|
清丰县|
杭州市|
深州市|
汕头市|
海兴县|
芜湖市|
昌乐县|
广灵县|
平潭县|
古田县|
永城市|
定陶县|
福安市|
平湖市|
巩义市|
慈溪市|
丹东市|
休宁县|
杭锦旗|
时尚|
南川市|
松滋市|
邹平县|
涞水县|
工布江达县|
池州市|
乌拉特后旗|
建平县|
城口县|
偏关县|
西峡县|
岗巴县|
巴林左旗|
普安县|
高清|
新巴尔虎右旗|
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論