采用CAN總線(xiàn)和CCll00芯片的嵌入式遠程測控系統方案設計
相關(guān)的資源有:在電路中使用了2410的一個(gè)擴展的L/O口作為片選信號,低電平有效;使用了2410的外部中斷0作為中斷引腳,低電平有效;16 MHz晶體作為輸入時(shí)鐘,MCP2510內部有振蕩電路,用晶體可直接起振。本文引用地址:http://dyxdggzs.com/article/148914.htm
中心模塊端,可對C,8051F310采用模擬SPI口的方式與MCP2510連接。
2.3 無(wú)線(xiàn)測控模塊設計
典型的無(wú)線(xiàn)結構包括一個(gè)無(wú)線(xiàn)發(fā)射器(包括數據源、調制器、RF源、RF功率放大器、天線(xiàn)、電源)和一個(gè)無(wú)線(xiàn)接收器BJ(包括數據接收電路、RF解調器、譯碼器、RF低噪聲放大器、天線(xiàn)、電源)。發(fā)射器的數據通過(guò)無(wú)線(xiàn)發(fā)射出去,接收器天線(xiàn)接收后進(jìn)行處理,得到經(jīng)過(guò)校驗的正確數據。
系統中選用了CCll00射頻芯片作為無(wú)線(xiàn)收發(fā)器,理由如下:
(1) 該器件有著(zhù)極為優(yōu)秀的傳輸能力,空曠傳輸距離可以達到500m,加了PA的模塊則可以達到1200m,完全滿(mǎn)足了一般的工廠(chǎng)測控距離要求。
(2) 2-FSK,GFSK和MSK支持,抗干擾能力極強,適用于工廠(chǎng)環(huán)境惡劣的生產(chǎn)車(chē)間。
(3) CCll00是一種低成本、真正單片的UHF收發(fā)器,可以根據自己的需要配置MCU,使用靈活,且功耗很低,完全可以采用電池供電。
(4) 它具有433/868/915 MHz3個(gè)波段載波頻率,也可以容易地設置在300—348 MHz、400—464 MHz和800—928 MHz的其他頻率上。
該系統選用了C8051F310作為CCI 100的微控制器。它具有一個(gè)增強型外設接口(SPIO),具有訪(fǎng)問(wèn)一個(gè)全雙工同步串行總線(xiàn)的能力,具有29個(gè)I/O端口、lO位逐次逼近型的ADC和一個(gè)25通道差分輸入多路選擇器,滿(mǎn)足了作為數據采集的通常需求。
CCll00模塊與CPU是采用SPI口進(jìn)行通信的,只需把CCll00的SPI口接到CPU的硬件SPI口上,另外,再將CCll00的GD00或GD02也接在CPU的任意引腳上。如果想要用中斷處理收發(fā)數據或是想做無(wú)線(xiàn)喚醒的話(huà),該引腳必須接在CPU的外部中斷引腳上。如圖4所示。

圖4 現場(chǎng)測控C8051F310與CC1100連接示意圖
微控制器除了完成基本的芯片初始化工作、數據的發(fā)送和接收之外,還需要根據需要在CCll00的引腳產(chǎn)生中斷,并由所編寫(xiě)的中斷管理程序進(jìn)行狀態(tài)檢測以及切換,并執行相應的中斷操作,使得無(wú)線(xiàn)通信可以在發(fā)射和接收以及待機之間切換。
3、軟件設計
軟件設計主要包括了CAN總線(xiàn)通信程序模塊、無(wú)線(xiàn)通信部分等,其中驅動(dòng)程序的設計是在LINUX下多任務(wù)操作系統下實(shí)現的,多任務(wù)系統中的CAN總線(xiàn)通信程序結構設計流程圖。如圖5所示。

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