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