EM200在分布式探測站組網(wǎng)通信的應(yīng)用
圖4是模塊與UIM卡的連接電路,其中33 pF電容用于濾去射頻電路產(chǎn)生的干擾。本文引用地址:http://butianyuan.cn/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所示,此時(shí)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需要同時(shí)處理兩組串口中斷,如圖6所示。
3.1 發(fā)送端面臨的問題
發(fā)送端面臨的最大問題是如何兼顧兩組串口的接收中斷,即當(dāng)兩個(gè)串口同時(shí)接收到數(shù)據(jù)時(shí),如何保證無丟失地全部接收。
雖然LPC2214的兩個(gè)16C550標(biāo)準(zhǔn)串口自帶16 BFIFO緩存,卻仍難以同時(shí)兼顧兩個(gè)串口的接收操作。
具體問題為,在兩個(gè)串口同時(shí)接收到超過其FIFO緩沖容量的連續(xù)數(shù)據(jù)時(shí),MCU只能響應(yīng)高優(yōu)先級(jí)串口中斷,在低優(yōu)級(jí)串口中斷被暫時(shí)屏蔽期間,低優(yōu)先級(jí)中斷的串口會(huì)因自身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ù)個(gè)數(shù),可能是1~1 024之間的任意數(shù)值,另外在1和X前面還分別有一個(gè)空格。應(yīng)答結(jié)果共計(jì)18~21 B,超過了串口的16 B FIFO緩存容量,在中斷被屏蔽而得不到及時(shí)響應(yīng)時(shí),無疑會(huì)導(dǎo)致FIFO緩存溢出。
評(píng)論