基于ARM和GPRS的無(wú)線傳輸與接收
3 系統(tǒng)軟件設(shè)計(jì)
根據(jù)系統(tǒng)需求,在操作系統(tǒng)Linux啟動(dòng)前,首先應(yīng)該對(duì)微處理器和GPRS模塊在內(nèi)的系統(tǒng)內(nèi)外部硬件進(jìn)行初始化,在硬件初始化就緒后,可按系統(tǒng)要求劃分并創(chuàng)建系統(tǒng)任務(wù),最后啟動(dòng)Linux進(jìn)行各任務(wù)的調(diào)度。應(yīng)用程序共分為初始化任務(wù)、配置任務(wù)、數(shù)據(jù)發(fā)送任務(wù)、數(shù)據(jù)處理任務(wù)和用戶串口中斷服務(wù)等五個(gè)任務(wù)。本文主要完成系統(tǒng)的初始化以及撥號(hào)連入Internet等工作。
3.1 系統(tǒng)初始化
為了能利用TCP/PI協(xié)議進(jìn)行數(shù)據(jù)傳輸。設(shè)計(jì)時(shí)必須對(duì)系統(tǒng)的硬件和軟件進(jìn)行初始化。圖2所示為系統(tǒng)初始化部分的軟件流程圖。本文引用地址:http://m.butianyuan.cn/article/151362.htm
本系統(tǒng)軟件在開(kāi)始時(shí),首先需要通過(guò)檢查0x90端口的輸入電平是否為高來(lái)判斷MC35i模塊是否正常上電。若未能正常上電,那么,軟件將通過(guò)0x90端口的輸出使MC35i模塊上電。
當(dāng)MC35i模塊上電后,軟件將在內(nèi)存中開(kāi)辟一個(gè)緩存區(qū)做為包括PPP、IP、TCP、UDP等協(xié)議的數(shù)據(jù)緩存區(qū)。該緩存區(qū)內(nèi)數(shù)據(jù)的存放方式采用雙向鏈表的方式。
為了TCP協(xié)議實(shí)現(xiàn)中能夠進(jìn)行超時(shí)檢測(cè),在軟件中應(yīng)利用R8822CPU模塊的內(nèi)部定時(shí)器安裝一個(gè)20ms的時(shí)鐘中斷。
ETR186可通過(guò)其串口COM2和MC35i模塊相連接,用軟件可通過(guò)安裝串口中斷來(lái)和MC35i模塊進(jìn)行數(shù)據(jù)傳輸。
在完成上述操作后,系統(tǒng)即可以利用AT命令登錄GPRS網(wǎng)絡(luò)。若不成功,即進(jìn)行重試,超過(guò)重試次數(shù)后,即發(fā)送出錯(cuò)報(bào)告。最后就是進(jìn)行PPP鏈路的連接,同時(shí)發(fā)送數(shù)據(jù)。
3.2 撥號(hào)原理
所謂初始化模塊,主要就是設(shè)定APN:CMNET,
at+cgdcont=1,ip,cmnet,
然后利用chat程序撥號(hào)*99***1,#
待撥號(hào)連接成功后,再由pppd建立通信鏈路即可。其腳本改動(dòng)如下:在ppp-on里改了電話號(hào)碼為*99***1#,將賬號(hào)與密碼清除,再修改DIALER_SCRIPT的路徑,同時(shí)把下面的設(shè)備改成/dev/ttyS0,速率改為115200,再將crtscts參數(shù)去掉。同時(shí)在ppp-on-dialer里把帳號(hào)密碼去掉。其改動(dòng)后的腳本如下:
評(píng)論