EM200在分布式探測站組網(wǎng)通信的應用
圖4是模塊與UIM卡的連接電路,其中33 pF電容用于濾去射頻電路產(chǎn)生的干擾。本文引用地址:http://dyxdggzs.com/article/155305.htm
目前大多數ARM7都具有兩組以上串口,其中通常有一組帶有完整的調制解調器接口,如LPC2214的串口。LPC2214作為DTE(數據終端設備)通過(guò)串口1與作為DEC(數據通信設備)的EM200相連,需要注意的是DTE與DCE之間的連接不需要交叉TXD/RXD線(xiàn)。
3 雙串口的管理
如圖2所示,收發(fā)端均需要管理兩組串口。對于接收端而言,當獲取來(lái)自CDMA網(wǎng)絡(luò )的數據后,MCU從串口1接收EM200的數據包,解包分析后將有效數據通過(guò)串口0發(fā)送給融合中心。如圖5所示,此時(shí)MCU只需處理串口1的接收中斷,串口0可以采取查詢(xún)方式發(fā)送。
在發(fā)送端,MCU從串口0接收來(lái)自探測站的數據,并將數據按AT指令TCP發(fā)送格式打包,經(jīng)串口1發(fā)送給EM200。由于A(yíng)T指令的操作是交互式的,在MCU發(fā)出下一條TCP指令給EM200前,必須確認已收到EM200之前AT指令執行后的應答響應,否則極可能導致發(fā)送失敗。由于需接收AT指令執行后的應答響應,串口1既要發(fā)送也要接收,再加上串口0的接收中斷,MCU需要同時(shí)處理兩組串口中斷,如圖6所示。
3.1 發(fā)送端面臨的問(wèn)題
發(fā)送端面臨的最大問(wèn)題是如何兼顧兩組串口的接收中斷,即當兩個(gè)串口同時(shí)接收到數據時(shí),如何保證無(wú)丟失地全部接收。
雖然LPC2214的兩個(gè)16C550標準串口自帶16 BFIFO緩存,卻仍難以同時(shí)兼顧兩個(gè)串口的接收操作。
具體問(wèn)題為,在兩個(gè)串口同時(shí)接收到超過(guò)其FIFO緩沖容量的連續數據時(shí),MCU只能響應高優(yōu)先級串口中斷,在低優(yōu)級串口中斷被暫時(shí)屏蔽期間,低優(yōu)先級中斷的串口會(huì )因自身FIFO緩存溢出導致數據丟失。
實(shí)際使用中,MCU一方面需要接收來(lái)自探測站的數據,另一方面還要接收EM200返回的之前AT指令執行后的應答響應。工作中TCP發(fā)送指令執行后的應答結果為“CRLF%TCPSEND:1,XCRLF”,其中CR和LF分別表示回車(chē)和換行,X代表發(fā)送指令中的有效數據個(gè)數,可能是1~1 024之間的任意數值,另外在1和X前面還分別有一個(gè)空格。應答結果共計18~21 B,超過(guò)了串口的16 B FIFO緩存容量,在中斷被屏蔽而得不到及時(shí)響應時(shí),無(wú)疑會(huì )導致FIFO緩存溢出。
評論