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