基于CAN和CCll00的嵌入式遠程測控系統(tǒng)的設計
3、軟件設計
軟件設計主要包括了CAN總線通信程序模塊、無線通信部分等,其中驅動程序的設計是在LINUX下多任務操作系統(tǒng)下實現的,多任務系統(tǒng)中的CAN總線通信程序結構設計流程圖。如圖5所示。
圖5 多任務系統(tǒng)中的CAN總線通信程序結構
CAN總線通信程序的設計可分為發(fā)送數據、接收數據和中斷處理3個模塊來實現。系統(tǒng)中CAN總線的數據發(fā)送和接收是兩個不同的線程。在驅動程序中建立數據發(fā)送和接收緩沖區(qū)。中斷處理程序只負責填充(或者讀取)緩沖區(qū)中的數據,然后喚醒等待接收(或發(fā)送)數據的任務。數據的發(fā)送和接收都通過獨立的緩沖區(qū)由中斷來實現。操作系統(tǒng)的中斷響應時間在軟件上決定了CAN總線數據的最快收發(fā)速度。
MCP2510的初始化,通過函數static int MCP—device—init(void)實現??赏ㄟ^設置MCP2510中的CNFl、CNF2、CNF3 3個寄存器,實現不同時鐘下CAN總線通信波特率的設置。
對于無線通信模塊,軟件設計主要包括09051F310的初始化和CCI 100的初始化以及接收數據程序、發(fā)送數據程序,通過寄存器的配置實現其頻率、通道、通信速率等的設置。函數void halRfWritePdSettings(RF SETHNGS木pRtSettings)即實現配置CCll00的寄存器的功能。發(fā)送數據通過函數void halRf-SendPacket(unsigned char譬txBuffer,unsigned char size)實現,接收數據通過函數unsigned char halRfBeceivePacket(unsigned char rxBuffer,unsigned char length)實現。在采集模塊中為了做到低功耗還采用了隨機定時喚醒功能,這樣加上CCll00自帶的CCA功能,可以最大限度地防止信息相撞,從而達到穩(wěn)定可靠的通信狀態(tài)。
4、結束語
該系統(tǒng)把短距離無線通信技術與嵌入式技術結合在一起,并且采用兩級組網方式,將有線與無線技術結合起來,與傳統(tǒng)技術相比,該方案的成本更低、功耗更低、抗干擾能力更強、軟件開發(fā)簡易,可廣泛應用于工廠自動監(jiān)控、生物信號采集、水文氣象監(jiān)控等領域?;贑AN總線和無線技術的遠程集中監(jiān)控系統(tǒng)是數據采集、網絡傳輸、計算機軟件等多種技術的綜合應用,適用于對遠端現場環(huán)境進行實時監(jiān)控,自動化管理,保障工業(yè)生產的安全穩(wěn)定運行。而隨著網絡及通信技術的飛速發(fā)展,短距離無線通信以其特有的抗干擾能力強、可靠性高、安全性好、受地理條件限制較少、安裝施工簡便靈活等特點,在測控系統(tǒng)中的應用越來越廣泛,如何根據實際需要選擇合適的網絡拓撲結構,開發(fā)自己的測控系統(tǒng)成為一個越來越廣泛的課題。在該設計中采用的CCll00芯片有其局限性,只能實現星形組網,如果需要組建Mesh網絡,可考慮把方案中的CCll00換成適用于ZIGBEE協(xié)議的CC2420芯片。
評論