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