基于Linux和GPRS的數(shù)據(jù)通訊系統(tǒng)在輸電線路運(yùn)檢導(dǎo)航系統(tǒng)中的應(yīng)用
上述的函數(shù)中都有涉及到讀握手信號(hào)的狀態(tài)進(jìn)行判斷操作,而讀握手信號(hào)值主要是通過(guò)讀modem狀態(tài)寄存器的值來(lái)實(shí)現(xiàn),在內(nèi)核中modem狀態(tài)寄存器被定義為UART_MSR,UART_MSR共8 b,從高到低每個(gè)bit依次代表的是DCD,RI,DSR,CTS,DDCD,TERI,DDSR,DCTS的值(高低電平),因此要將這些函數(shù)中對(duì)UART MSR的狀態(tài)值status進(jìn)行判斷處理前,相應(yīng)的位賦上正確的值,這個(gè)值從相應(yīng)的GPIO腳來(lái)獲取。
3 系統(tǒng)通信程序?qū)崿F(xiàn)
在Linux下要完成與掛接在Internet上的通信服務(wù)器通信,首先需要經(jīng)過(guò)GPRS模塊初始化和GPRS網(wǎng)絡(luò)連接,然后才能使用TCP/IP協(xié)議進(jìn)行數(shù)據(jù)傳輸。
GPRS模塊初始化程序功能:實(shí)現(xiàn)MC35i模塊初始化并完成MC35i與S3C2410的邏輯連接。在該程序內(nèi)部使STB選通信號(hào)變?yōu)楦唠娖?,并持續(xù)規(guī)定時(shí)間,然后恢復(fù)成低電平,完成對(duì)MC35i的初始化工作,緊接著通過(guò)有關(guān)控制信號(hào)實(shí)現(xiàn)S3(22410與MC35i的邏輯連接。初始化程序可直接在Linux命令行下執(zhí)行命令I(lǐng)n-smodigto即可完成。
GPRS網(wǎng)絡(luò)連接程序功能:使Mc35i以某種通信協(xié)議連接到GPRS網(wǎng)絡(luò)上。網(wǎng)絡(luò)連接使用第三方提供的內(nèi)置PPP通信協(xié)議的軟件,其命令如下:
/connect
當(dāng)連接成功后,由于GPRS網(wǎng)絡(luò)通過(guò)中國(guó)移動(dòng)網(wǎng)關(guān)連接到了Internet網(wǎng),因此就可以利用TCP/IP協(xié)議與Internet上的任何IP地址進(jìn)行通信了。
由于Linux操作系統(tǒng)已內(nèi)置TCP/IP協(xié)議棧,因此可以直接使用套接字編程實(shí)現(xiàn)TCP/IP的數(shù)據(jù)傳輸。套接字的基本模式是C/S(客戶/服務(wù)器),內(nèi)置GPRS模塊的設(shè)備工作在客戶模式,而遠(yuǎn)程Internet網(wǎng)上的通信服務(wù)器工作在服務(wù)器模式??蛻舳顺绦蚧玖鞒淌牵簞?chuàng)建套接字,綁定套接字到已知端口上,然后請(qǐng)求連接,最后調(diào)用數(shù)據(jù)收發(fā)函數(shù)進(jìn)行數(shù)據(jù)的發(fā)送。在客戶端通信程序執(zhí)行前,服務(wù)器端的程序必須完成初始化并開(kāi)始偵聽(tīng)。
客戶端程序如下:
評(píng)論