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