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