EM200在分布式探測站組網(wǎng)通信的應用
進(jìn)程3負責從RAM緩沖區中截取一段之前串口0接收到的數據,并按AT指令TCP發(fā)送格式打包并發(fā)送給EM200模塊,然后檢測AT指令暫存緩沖區中的應答響應結果,判斷是否立即發(fā)出下一輪TCP發(fā)送指令給EM200,如圖10所示。進(jìn)程3對串口1執行發(fā)送操作,實(shí)時(shí)性相對進(jìn)程1和進(jìn)程2要求更低,因此進(jìn)程3的優(yōu)先級可設為三者中最低一級。本文引用地址:http://dyxdggzs.com/article/155305.htm
4.2.2 接收端軟件設計
接收端也分為三個(gè)進(jìn)程,依靠RTOS的調度機制,MCU在三個(gè)進(jìn)程之間切換執行,實(shí)現接收端對來(lái)自CDMA網(wǎng)絡(luò )數據包的接收并將解析后的有效數據發(fā)送給融合中心。
鑒于EM200收到自CDMA網(wǎng)絡(luò )數據后會(huì )直接經(jīng)串口將數據包輸出的特性(不同于其他模塊會(huì )將數據暫存在模塊內部,只有當收到AT指令讀命令后才會(huì )輸出數據包),因此最高優(yōu)先級進(jìn)程1的任務(wù)就是通過(guò)串口1接收自EM200的數據包并將其壓入在RAM開(kāi)辟的緩沖區。如圖11接收端的進(jìn)程1架構與發(fā)送端進(jìn)程1類(lèi)似。
由于進(jìn)程1中收到的數據包含有部分無(wú)效字符,因此中等優(yōu)先級進(jìn)程2負責解析緩沖區數據包中的有效數據,若檢測到緩沖區中無(wú)完整的數據包,則調用RTOS提供的OSTimeDlyHMSM函數延時(shí)一定時(shí)間,在延時(shí)期內主動(dòng)釋放MCU的使用權,若檢測到一個(gè)以上的完整數據包,則在解析處理后將有效數據送入在內存中開(kāi)辟的串口0發(fā)送緩沖區,該進(jìn)程架構如圖12所示。
低優(yōu)先級的進(jìn)程3負責檢測串口0的發(fā)送緩沖區是否為空,若不為空則通過(guò)串口0將緩沖區中數據發(fā)送出去,如圖13所示。
只有在進(jìn)程2延時(shí)期內且進(jìn)程1處于掛起狀態(tài),負責串口0發(fā)送任務(wù)的進(jìn)程3才得以執行。由于采用了延時(shí)的方式主動(dòng)釋放對MCU的使用權,因此延時(shí)的大小決定了進(jìn)程3每次的執行時(shí)間,延時(shí)若設得過(guò)大可能會(huì )造成數據包解析不及時(shí)從而導致串口1收到的數據包在接收緩沖區中大量堆積,使得實(shí)時(shí)性大大降低。延時(shí)若設得過(guò)小則會(huì )導致進(jìn)程3在發(fā)送一段較長(cháng)的數據時(shí)被經(jīng)常打斷,微控制器的處理資源被浪費在頻繁的進(jìn)程切換上,綜合考慮此處將延時(shí)設定為50ms。
5 結語(yǔ)
本文介紹了一套基于EM200模塊的CDMA數據收發(fā)系統,利用該系統組建的分布式探測網(wǎng)絡(luò )可適應各種地理環(huán)境,結合CDMA系統較短的傳輸時(shí)延配以合理的軟硬件設計,能夠確保整個(gè)網(wǎng)絡(luò )較高的實(shí)時(shí)性能,滿(mǎn)足分布式無(wú)源探測信息融合系統組網(wǎng)通信要求。
評論