嵌入式智能射頻光傳輸模塊設計
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不再難懂)
評論