總線分析儀在無線傳感器網絡的CAN總線互聯開發(fā)中的應用
①串口接收數據事件。每次節(jié)點從串口接收到一個字節(jié)的數據將觸發(fā)該事件。對于信息采集任務來說,其信息是定時采集的。同時,CAN總線的速率遠遠大于無線傳輸的速率。因此,在節(jié)點開辟了一段較大的緩存區(qū),對CAN總線傳過來的數據進行緩存。該緩存區(qū)的大小取決于無線傳輸的速率以及CAN總線在一個定時采集周期的數據量大小。假設無線傳輸的速率為V、緩存區(qū)大小為Mem、采集周期為T、每個采集周期的數據量為Data,注意V為傳輸有效數據的速率,即要去掉協(xié)議開銷以及管理和控制開銷,則至少滿足V×T≥Data,Mem≥Data。為提高無線傳輸的效率,不是每次從串口接受到一個字節(jié)就從無線接口發(fā)走,而是每次緩存的字節(jié)數達到無線傳輸一個數據包的大小時,啟動任務一UARTRcvdTask。這種采用任務的方式進行實際的無線數據傳輸可以避免阻塞其他event事件。
?、跓o線接受數據事件。每次節(jié)點從無線接口接受到一個數據包將觸發(fā)該事件。事件處理程序主要從協(xié)議數據包中獲取傳輸數據,并且緩存于接受緩存區(qū),具體地怎么處理無線接受的數據的工作,通過啟動任務——RadioRcvdTask來完成,以避免阻塞其他event事件。
③定時器事件。該事件定時觸發(fā)。該事件處理程序主要定時判斷串口接受數據緩存區(qū)是否有數據,如果有的話,則啟動任務——UARTRcvdTask,以避免到串口收到的數據不足一個協(xié)議數據包時,會長期滯留在串口接受數據緩存區(qū)中。
4 性能分析和實驗
整個系統(tǒng)的性能主要取決于無線傳輸的速率。無線CC1000使用頻率為14.745MHz的晶振作為驅動,在該驅動下面CC1000可以提供的最大數據傳輸率為19.2 KB/s??紤]無線傳輸協(xié)議消耗,無線傳輸數據報的格式如下:
其中TOSH_DATA_LENGTH=29,故協(xié)議的理論有效數據比率約為70%。同時,為提高無線傳輸的效率,不是每次從串口接受到一個字節(jié)就從無線接口發(fā)走,而是每次緩存的字節(jié)數達到無線傳輸一個數據包的大小時,才啟動發(fā)送任務,故無線有效傳輸速率約為13.4KB/s,,對于本系統(tǒng)應用來說,CAN總線的采樣周期為10 s,每次采樣數據為1K數據。雖然,CAN總線速率相對來說較高,但是通過緩存完全可以滿足需求。 在性能測試中,該系統(tǒng)持續(xù)運行20多個小時,收發(fā)均無問題。
5 結 論
本文基于無線傳感器網絡給出一種連接CAN總線的無線通道設計,主要包括CAN總線無線接入控制模塊電路設計以及無線傳感器節(jié)點的通信協(xié)議設計等內容。目前,該系統(tǒng)已經實現,實際使用效果良好。本文內容對于一般的信息采集無線傳輸系統(tǒng)設計具有較好的借鑒意義。
評論