一種嵌入式射頻光傳輸模塊實(shí)現(xiàn)方案
3.1 系統(tǒng)軟件總體設(shè)計(jì)
軟件總體功能主要分為四個部分:參數(shù)監(jiān)測、數(shù)據(jù)存儲、數(shù)據(jù)收發(fā)和性能控制。在主程序中采用兩個中斷:定時器中斷和串口中斷。定時器中斷實(shí)時采集參數(shù)數(shù)據(jù),實(shí)現(xiàn)模塊的實(shí)時監(jiān)測;串口中斷實(shí)時收發(fā)上位機(jī)和FSK數(shù)據(jù),實(shí)現(xiàn)命令的處理和監(jiān)控?cái)?shù)據(jù)的傳輸。
主程序的結(jié)構(gòu)如圖4所示,程序?qū)ι衔粰C(jī)命令進(jìn)行鑒權(quán)處理之后,根據(jù)通信協(xié)議解析處理命令,并執(zhí)行相應(yīng)的操作。
3.2 CC1000參數(shù)編程
CCl000作為數(shù)傳芯片,需要進(jìn)行參數(shù)配置以決定其工作性能,因而CC1000參數(shù)編程是一個重要的過程。通過可編程配置寄存器能改變以下主要參數(shù):接收/發(fā)送模式、射頻輸出功率、射頻輸出頻率、FSK分頻、晶振參考頻率、傳輸速率和數(shù)據(jù)格式等。在本設(shè)計(jì)中,CC1000 采用曼徹斯特編碼方式,進(jìn)行數(shù)據(jù)譯碼和同步工作,這通過設(shè)置CC1000 的MODEM1 寄存器的參數(shù)完成。在同步編碼方式中,曼徹斯特編碼不需要鎖定平均值濾波器,傳輸效率高。設(shè)計(jì)要求CC1000采用11.0592MHz晶振,接收本振頻率為433.766MHz,發(fā)射中心頻率為433.916MHz(連發(fā)“1”)、433.948MHz (連發(fā)“0”),調(diào)制頻偏為32KHz,載頻穩(wěn)定度為10KHz。根據(jù)以上參數(shù),可通過Chipcon 公司提供的CC1000配置軟件SmartRF Studio來產(chǎn)生配置信息,這些配置信息將被輸入到單片機(jī)中。另外該軟件還可以提供輸入/輸出匹配電路和VCO電感所需的元件參數(shù)值。
完成配置信息后,要對CC1000進(jìn)行初始化,初始化主要完成對CC1000內(nèi)部寄存器的設(shè)置。在初始化時需復(fù)位CC1000內(nèi)部寄存器。當(dāng)完成寄存器的設(shè)置后,為了避免芯片運(yùn)行過程中頻率產(chǎn)生的漂移,應(yīng)當(dāng)校正CC1000內(nèi)部VCO和PLL寄存器中的值。校正完成后,對MAIN寄存器進(jìn)行設(shè)置,將CC1000輸出功率初始值設(shè)為0,功耗模式設(shè)置為低電平模式,以降低功耗。初始化流程如圖5所示。
3.3 數(shù)據(jù)收發(fā)程序設(shè)計(jì)[5]
數(shù)據(jù)的收發(fā)包括:單片機(jī)接收上位機(jī)數(shù)據(jù),單片機(jī)向上位機(jī)發(fā)送數(shù)據(jù),單片機(jī)接收CC1000數(shù)據(jù)和單片機(jī)向CC1000發(fā)送數(shù)據(jù)。這里僅討論單片機(jī)通過串口1接收中斷接收CC1000數(shù)據(jù)過程,這是整個數(shù)據(jù)收發(fā)程序設(shè)計(jì)中的難點(diǎn)。
本設(shè)計(jì)中,單片機(jī)與CC1000之間采用曼徹斯特同步模式進(jìn)行數(shù)據(jù)的接收和發(fā)送。在發(fā)射模式下(單片機(jī)向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ù)幀由訓(xùn)練碼、同步碼、前導(dǎo)碼和有效數(shù)據(jù)構(gòu)成。在本設(shè)計(jì)中,訓(xùn)練碼為連續(xù)交替出現(xiàn)的0 和1,共40個;同步碼為連續(xù)出現(xiàn)的8個0;前導(dǎo)碼為連續(xù)的8個1。當(dāng)數(shù)據(jù)中出現(xiàn)符合前面所有格式數(shù)據(jù)時,接下來的數(shù)據(jù)就是要接收的有效數(shù)據(jù)。當(dāng)數(shù)據(jù)符合幀格式時,單片機(jī)才認(rèn)為該數(shù)據(jù)為合格數(shù)據(jù),從而進(jìn)行接收,這樣可以保證接收數(shù)據(jù)的準(zhǔn)確性,降低傳輸誤碼率。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論