一種嵌入式射頻光傳輸模塊實(shí)現方案
3.1 系統軟件總體設計
軟件總體功能主要分為四個(gè)部分:參數監測、數據存儲、數據收發(fā)和性能控制。在主程序中采用兩個(gè)中斷:定時(shí)器中斷和串口中斷。定時(shí)器中斷實(shí)時(shí)采集參數數據,實(shí)現模塊的實(shí)時(shí)監測;串口中斷實(shí)時(shí)收發(fā)上位機和FSK數據,實(shí)現命令的處理和監控數據的傳輸。
主程序的結構如圖4所示,程序對上位機命令進(jìn)行鑒權處理之后,根據通信協(xié)議解析處理命令,并執行相應的操作。

3.2 CC1000參數編程
CCl000作為數傳芯片,需要進(jìn)行參數配置以決定其工作性能,因而CC1000參數編程是一個(gè)重要的過(guò)程。通過(guò)可編程配置寄存器能改變以下主要參數:接收/發(fā)送模式、射頻輸出功率、射頻輸出頻率、FSK分頻、晶振參考頻率、傳輸速率和數據格式等。在本設計中,CC1000 采用曼徹斯特編碼方式,進(jìn)行數據譯碼和同步工作,這通過(guò)設置CC1000 的MODEM1 寄存器的參數完成。在同步編碼方式中,曼徹斯特編碼不需要鎖定平均值濾波器,傳輸效率高。設計要求CC1000采用11.0592MHz晶振,接收本振頻率為433.766MHz,發(fā)射中心頻率為433.916MHz(連發(fā)“1”)、433.948MHz (連發(fā)“0”),調制頻偏為32KHz,載頻穩定度為10KHz。根據以上參數,可通過(guò)Chipcon 公司提供的CC1000配置軟件SmartRF Studio來(lái)產(chǎn)生配置信息,這些配置信息將被輸入到單片機中。另外該軟件還可以提供輸入/輸出匹配電路和VCO電感所需的元件參數值。
完成配置信息后,要對CC1000進(jìn)行初始化,初始化主要完成對CC1000內部寄存器的設置。在初始化時(shí)需復位CC1000內部寄存器。當完成寄存器的設置后,為了避免芯片運行過(guò)程中頻率產(chǎn)生的漂移,應當校正CC1000內部VCO和PLL寄存器中的值。校正完成后,對MAIN寄存器進(jìn)行設置,將CC1000輸出功率初始值設為0,功耗模式設置為低電平模式,以降低功耗。初始化流程如圖5所示。

3.3 數據收發(fā)程序設計[5]
數據的收發(fā)包括:?jiǎn)纹瑱C接收上位機數據,單片機向上位機發(fā)送數據,單片機接收CC1000數據和單片機向CC1000發(fā)送數據。這里僅討論單片機通過(guò)串口1接收中斷接收CC1000數據過(guò)程,這是整個(gè)數據收發(fā)程序設計中的難點(diǎn)。
本設計中,單片機與CC1000之間采用曼徹斯特同步模式進(jìn)行數據的接收和發(fā)送。在發(fā)射模式下(單片機向CC1000發(fā)送數據),PCLK提供發(fā)送數據時(shí)鐘信號,DIO用于數據輸入,CC1000 自動(dòng)完成對數據的譯碼。在接收模式下,PCLK 提供接收數據時(shí)鐘信號,在DIO提供數據,CC1000自動(dòng)完成數據編碼和同步工作。
(1)數據幀結構
在曼徹斯特同步模式下,數據幀由訓練碼、同步碼、前導碼和有效數據構成。在本設計中,訓練碼為連續交替出現的0 和1,共40個(gè);同步碼為連續出現的8個(gè)0;前導碼為連續的8個(gè)1。當數據中出現符合前面所有格式數據時(shí),接下來(lái)的數據就是要接收的有效數據。當數據符合幀格式時(shí),單片機才認為該數據為合格數據,從而進(jìn)行接收,這樣可以保證接收數據的準確性,降低傳輸誤碼率。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論