基于PIC16F73和CC1000的無線數(shù)字傳輸模塊設計
在工業(yè)、科學研究以及醫(yī)療設備中,目前出現(xiàn)了大量需要進行通信的設備,這些設備通信距離較近、數(shù)據(jù)量較小、不適合布線。比如自動抄表系統(tǒng)、酒店點菜系統(tǒng)以及現(xiàn)場數(shù)據(jù)采集系統(tǒng)等,其中有很多設備是可移動的,而且要求何種小便于攜帶。因此,要求其通過設備具有體積小、功耗低、成本低、使用方便等特點?;谶@些需求,本文給出了一款超低功耗的無線數(shù)字傳輸模塊的設備及實現(xiàn)方法。
本文引用地址:http://butianyuan.cn/article/246615.htm該模塊采用Chipcon公司的超低功耗FSK調制解調芯片CC1000和Microchip公司的低功耗單片機PIC16F73,從而保證了系統(tǒng)的超低功耗。同時,為了適應電池供電系統(tǒng)的應用,該模塊支持查詢方式的無線通信,可以使系統(tǒng)的平均工作電流低至10μA。該模塊具有8組信道,可以實現(xiàn)點對點、點對多點的半雙工通信,并且提供標準串行數(shù)據(jù)接口,支持TTL、RS232和RS485通信接口,可以方便地與其它控制器或計算機連接。
1 模塊硬件設計
模塊結構框圖如圖1所示。
作為工作在物理層和數(shù)據(jù)鏈路層的底層通信設備,該系統(tǒng)完成數(shù)據(jù)的調制解調、假數(shù)據(jù)過濾、數(shù)據(jù)組合、解碼數(shù)據(jù)幀、數(shù)據(jù)校驗等功能。在接收過程中完成數(shù)據(jù)由電信號向位流、由位流數(shù)據(jù)向字節(jié),由字節(jié)向數(shù)據(jù)幀的變換,而在發(fā)送過程中則完成接收到的逆向過程。數(shù)據(jù)發(fā)送過程中數(shù)據(jù)流的變化如圖2所示。
調制解調由CC1000完成。系統(tǒng)采用頻移鍵控調制(FSK),載波頻率為434MHz,帶寬為64kHz,數(shù)據(jù)采用差分曼徹斯特編碼發(fā)送,空中發(fā)送數(shù)據(jù)速率可以根據(jù)需要設置,最高FSK數(shù)據(jù)速率為76.8kpbs。CC1000采用三線命令接口和兩線數(shù)據(jù)接口,可編程配置載波頻率和數(shù)據(jù)速率等內容。有關CC1000的詳細內容見參考文獻。
模塊控制器在發(fā)送時從用戶接口接數(shù)據(jù)和命令,并將用戶數(shù)據(jù)轉換成數(shù)據(jù)幀傳送給CC1000,控制CC1000進行數(shù)據(jù)發(fā)送。在接收時,控制器接收從CC1000傳送過來的數(shù)據(jù),分析數(shù)據(jù),過濾噪聲,將數(shù)據(jù)由位流轉換為字節(jié),進行校驗并將用戶數(shù)據(jù)通過串行口傳送給用戶,使用戶可以實現(xiàn)所發(fā)即所收。
模塊是為低功耗系統(tǒng)而設計的,除了具有SLP引腳可以直接休眠模塊外,還有一些專門設計的命令來支持使用查詢方式的通信。PCMD、RX、TX三線組成模塊的三線接口,配置命令時PCMD必須為高電平。配置命令工作時序如圖3所示。
發(fā)送數(shù)據(jù)時PCMD應置為低電平,通過串行口發(fā)送數(shù)據(jù)即可。模塊使用時間間隔區(qū)分數(shù)據(jù)幀,如果有傳輸半個字節(jié)的時間沒有接收到數(shù)據(jù),則認為此前接收到的為一幀數(shù)據(jù),系統(tǒng)將編碼該幀數(shù)據(jù)并通過CC1000進行調制和發(fā)送。因此,如果用戶數(shù)據(jù)是以數(shù)據(jù)幀的格式發(fā)送的,用戶應當連續(xù)發(fā)送數(shù)據(jù),以避免模塊將一幀數(shù)據(jù)分割為兩幀數(shù)據(jù)發(fā)送,從而降低發(fā)送效率。模塊只能進行半雙工通信,沒有數(shù)據(jù)發(fā)送時模塊處于接收狀態(tài);有休眠信號時模塊進入體眠狀態(tài),此時模塊無法接收和發(fā)送數(shù)據(jù),只有將模塊喚醒后,才能發(fā)送和接收數(shù)據(jù)。READY信號是模塊工作狀態(tài)指示信號。當READY長時間處于低電平狀態(tài)時,可以使用RST將模塊復位,重新設置模塊的工作狀態(tài),以避免模塊處于錯誤工作狀態(tài)。
2 軟件設計
系統(tǒng)軟件采用專門為PIC單片機進行了優(yōu)化,能夠為PIC系列單片機產生優(yōu)質高效的代碼,具體內容參考文獻。系統(tǒng)控制器軟件設計是本系統(tǒng)的核心內容,由于控制器要完成與用戶和CC1000雙方的通信及數(shù)據(jù)封裝,因此系統(tǒng)軟件借用Windows系統(tǒng)的消息循環(huán)機制設計,采用消息循環(huán)的體系結構。這種結構使得程序結構清晰、可擴展性強、可移植性強。經(jīng)過長時間的初中,證明這種結構非常適合單片機系統(tǒng)軟件的開發(fā)。
圖4為程序初始化和主函數(shù)部分的結構框圖。系統(tǒng)程序總線結構采用消息驅動機制。在系統(tǒng)內部寄存器和變量初始化完成后便可以進入消息循環(huán)程序查詢系統(tǒng)消息。系統(tǒng)消息一般是CPU外部或內部的事件通過CPU中斷系統(tǒng)激勵CPU運行的。為了能夠使系統(tǒng)產生和響應消息,必須啟動CPU的中斷系統(tǒng),因而在進入消息循環(huán)前啟動CPU定時中斷、串行通信中斷、外部觸發(fā)中斷。程序初始化部分在CPU上電或復位后只執(zhí)行一次,CPU在正常工作時即將終都在消息循環(huán)中反復檢測消息是否存在,并根據(jù)消息的種類做不同的操作,最后清除相應的消息標志,再進行循環(huán)檢測消息。本系統(tǒng)中消息共有三種,分別是程序節(jié)拍控制信號、與CC1000通信的信號以及與用戶通信的信號。程序節(jié)拍控制信號控制程序的運行過程,包括時間信號、外部中斷信號(休眠、喚醒)以及其它定時動作信號;與CC1000通信的信號包括CC1000狀態(tài)轉換信號、接收完成信號、發(fā)送開始信號以及發(fā)送完畢信號等,負責管理與CC1000的通信和控制工作;與用戶通信的信號包括接收用戶數(shù)據(jù)完畢信號、用戶數(shù)據(jù)發(fā)送完畢信號以及向用戶發(fā)送數(shù)據(jù)開始信號等,負責與用戶的通信管理。程序的消息循環(huán)結構如圖5所示。
評論