Linux無(wú)線網(wǎng)絡(luò)技術(shù):GPRS、GSM

相關(guān)專題: 無(wú)線 芯片
Sreekrishnan Venkateswaran




  GSM 上的 Linux GPRS 和數(shù)據(jù)



  GPRS 是一個(gè)用于通過(guò) GSM 傳輸數(shù)據(jù)的數(shù)據(jù)分組服務(wù),是一種卓越的數(shù)字蜂窩標(biāo)準(zhǔn)。盡管 GSM 上的數(shù)據(jù)是線路交換的并且不管怎樣都占用一個(gè)通道,但是 GPRS 上的數(shù)據(jù)是一直連接的(always-on)、分組交換(packet-switched)的數(shù)據(jù)流,用戶根據(jù)使用付費(fèi)。GSM 的傳輸速度一般是 9.6 kbps,而 GPRS 能夠運(yùn)行的速度為 56 kbps 到 170 kbps。



  GPRS 和 GSM 芯片通常有一個(gè)到系統(tǒng)的 UART 接口。對(duì)于內(nèi)置 GSM/GPRS 支持的母板(例如,一個(gè)帶有連接到 UART 通道的 Siemen MC-45 模塊的母板),傳統(tǒng)的串行驅(qū)動(dòng)程序就能驅(qū)動(dòng)這個(gè)鏈接?紤] PCMCIA/CF 的形成因素(例如一張可選 GPRS 卡),serial_cs(是用于訪問(wèn) PCMCIA 串行設(shè)備的普通卡服務(wù)驅(qū)動(dòng)程序)能夠允許其他操作系統(tǒng)把此卡當(dāng)作一個(gè)串行設(shè)備。第一個(gè)未使用的串行設(shè)備(/dev/ttySx)被分配給此卡,然后此卡就可以被當(dāng)成串行設(shè)備訪問(wèn)。serial_cs 也可以通過(guò)全球定位系統(tǒng) (GPS) PCMCIA 和 CF 卡模擬串行端口。針對(duì) USB GPRS 調(diào)制解調(diào)器而言,USB-to-serial 轉(zhuǎn)換器一般 USB 端口轉(zhuǎn)換為虛擬串行端口,因此系統(tǒng)其他部分就會(huì)將它看作串行設(shè)備。



  GPRS 網(wǎng)絡(luò)使用 GGSN(GPRS 網(wǎng)關(guān)支持節(jié)點(diǎn)) 連接到一個(gè)外部網(wǎng)絡(luò)(例如 Internet)。GPRS 設(shè)備類似于擁有擴(kuò)展 AT 命令集的調(diào)制解調(diào)器,在進(jìn)入數(shù)據(jù)模式之前必須使用 AT 命令定義一個(gè)上下文。上下文字符串看起來(lái)類似于清單 3 中給出的示例。



  清單 3. 上下文字符串



  'AT+CGDCONT=1,"IP","internet.voicestream.com","0.0.0.0",0,0'





  在這個(gè)示例中,1 代表上下文編號(hào),IP 是數(shù)據(jù)分組類型,internet.voicestream.com 是接入點(diǎn)名稱(APN) 字符串,0.0.0.0 意味著服務(wù)提供者選擇 IP 地址,其他參數(shù)與數(shù)據(jù)和報(bào)頭壓縮有關(guān)。APN 字符串取決于服務(wù)提供者。一般不需要用戶名和口令。



  PPP 允許網(wǎng)絡(luò)協(xié)議(比如 TCP/IP)在串行鏈路上運(yùn)行。在無(wú)線網(wǎng)絡(luò)的上下文中,PPP 可以使 TCP/IP 運(yùn)行于 GPRS 上,數(shù)據(jù)通過(guò) GSM、Bluetooth RFCOMM 以及 IrDa COMM 進(jìn)行傳輸。清單 4 給出了一種調(diào)用 PPP 后臺(tái)進(jìn)程 pppd 的公共語(yǔ)法。



  清單 4. 調(diào)用 PPP 后臺(tái)進(jìn)程 pppd 的公共語(yǔ)法



  pppd ttySx call connection-script





  在這個(gè)示例中,ttySx 是物理或虛擬的串行設(shè)備(PPP 運(yùn)行其上),connection-script 是 /etc/ppp/peers/ 目錄中的一個(gè)文件,這個(gè)目錄包含在 pppd 和服務(wù)提供者之間交換的用于建立鏈接的 AT 命令序列。建立鏈接并完成身份驗(yàn)證以后,PPP 將啟動(dòng)網(wǎng)絡(luò)控制協(xié)議(Network Control Protocol,NCP)。IPCP (Internet Protocol Control Protocol,Internet 協(xié)議控制協(xié)議) 是用于運(yùn)行 IP 的 NCP。一旦 IPCP 成功通過(guò) IP 地址,PPP 就開始與 TCP/IP 棧交互。



  清單 5 給出了用于連接到 GPRS 服務(wù)提供者的 PPP 鏈接腳本示例,而清單 6 給出的是用于到 GSM 服務(wù)提供者的數(shù)據(jù)連接的連接腳本示例。



  清單 5. 針對(duì) GPRS 的 pppd 鏈接腳本示例(/etc/ppp/peer/gprs-script)



  115200


  connect "/usr/sbin/chat -s -v "" AT+CGDCONT=1,"IP",


  "internet2.voicestream.com","0.0.0.0",0,0 OK AT+CGDATA="PPP",1"


  crtscts


  noipdefault


  modem


  usepeerdns


  defaultroute


  connect-delay 5000





  從操作系統(tǒng)的角度出發(fā),GSM 上的數(shù)據(jù)類似于通過(guò)撥號(hào)調(diào)試解調(diào)器連接收發(fā)的數(shù)據(jù);ヂ(lián)網(wǎng)服務(wù)提供商(ISP)的電話號(hào)碼是使用 GSM 撥入的,并且會(huì)建立一個(gè)撥號(hào)連接。利用用戶名和口令進(jìn)行身份驗(yàn)證。



  一旦 PPP 建立了與服務(wù)提供者的 IP 連接,TCP 應(yīng)用程序例如 Web 瀏覽器就可以不加更改地在 GSM/GPRS 設(shè)備上運(yùn)行。



  gsmlib 項(xiàng)目為通過(guò) GSM 發(fā)送語(yǔ)音和 SMS(Short Messaging Service,短信服務(wù))提供了實(shí)用程序(請(qǐng)參閱 參考資料 了解更多關(guān)于 gsmlib 的信息)。它包括用于存取 Subscriber Identity Module (SIM)卡中的電話簿、收發(fā) SMS 消息等功能的實(shí)用程序。



  清單 6. 用于通過(guò) GSM 傳輸數(shù)據(jù)的 pppd 連接腳本示例(/etc/ppp/peer/gsm-script)



  115200


  connect '/usr/sbin/chat -s -v ABORT "NO CARRIER" ABORT "NO DIALTONE" ABORT "BUSY" "" AT OK


  ATDT CONNECT'


  crtscts


  noipdefault


  modem


  user "linux"


  usepeerdns


  defaultroute


  connect-delay 5000





  Linux Infrared Data



  Infrared Data (IrDa) 是一種用紅外線無(wú)線傳輸數(shù)據(jù)的規(guī)范。主要用于連接膝上電腦或者將錄像機(jī)或照相機(jī)這樣的設(shè)備連接到計(jì)算機(jī)系統(tǒng)。



  IrDa 的速度從 Serial Infrared (SIR) 的 115 kbps 到 Very Fast Infrared (VFIR) 的 16 Mbps。大多數(shù)處于 SIR 模式的 IrDa 芯片是 UART 16650 兼容的(16650 是一種公共 PC UART),因此傳統(tǒng) Linux 串口驅(qū)動(dòng)程序可以充當(dāng)鏈路級(jí)別的驅(qū)動(dòng)程序。IrDa 行的規(guī)范實(shí)現(xiàn) —— IrTTY (drivers/net/irda/irtty.c),使串行驅(qū)動(dòng)程序驅(qū)動(dòng) SIR。IrPORT 驅(qū)動(dòng)程序(drivers/net/irda/irport.c)代替了 IrTTY 和串行驅(qū)動(dòng)程序,并提供更好的設(shè)備控制。與串行驅(qū)動(dòng)器不兼容的 IrDa 芯片有自己的設(shè)備驅(qū)動(dòng)程序。例如,NSC PC87108 芯片組就使用自己的驅(qū)動(dòng)程序(nsc-ircc.c)。與上面討論到的用于 USB Bluetooth 設(shè)備的 hci-usb 驅(qū)動(dòng)程序類似,irda-usb.c 設(shè)備驅(qū)動(dòng)程序支持 USB IrDa FIR 軟件狗。



  IrLAP 是負(fù)責(zé) IrDa 設(shè)備發(fā)現(xiàn)、重傳以及流控制的鏈路存取協(xié)議層。IrLMP 鏈路管理層和 Tiny 傳輸協(xié)議層(TinyTP)駐留于 IrLAP 之上。而它們之上是 IrCOMM 和 IrLAN 層。IrCOMM(在 net/irda/ircomm/ 中實(shí)現(xiàn))提供串行模擬,使運(yùn)行于串行端口(比如終端仿真器)上的應(yīng)用程序不加更改地在 IrDa 棧上運(yùn)行。IrLAN(在 net/irda/irlan/ 中實(shí)現(xiàn))提供使 TCP/IP 直接運(yùn)行于 IrDa 棧之上的虛擬網(wǎng)絡(luò)接口。IrLAN 代碼使用 register_netdev 將太網(wǎng)設(shè)備注冊(cè)到 Linux 網(wǎng)絡(luò)層,使用 netif_rx 向 Linux IP 棧發(fā)送數(shù)據(jù)(與對(duì) WLAN 驅(qū)動(dòng)程序和 Bluetooth BNEP的解釋類似)。IrCOMM 與 Bluetooth RFCOMM 相似,而 IrLAN 則類似于 Bluetooth BNEP。



  IrOBEX 是建立在 TinyTP 之上的一個(gè)簡(jiǎn)單協(xié)議,它允許傳輸二進(jìn)制數(shù)據(jù)。IrOBEX 的擴(kuò)展定義了不同數(shù)據(jù)對(duì)象的傳輸。



  為了在 Linux 上應(yīng)用 IrDa 協(xié)議,必須安裝 IrDa 實(shí)用程序(如 irattach),它是作為 Linux IrDa 項(xiàng)目的一部分開發(fā)的。



  性能問(wèn)題



  網(wǎng)絡(luò)性能取決于特定載體網(wǎng)絡(luò)的特征。例如,GPRS 的帶寬取決于使用的代碼模式,而 Bluetooth 的性能受 L2CAP 層的網(wǎng)段的影響。對(duì)于 WLAN 工作站與接入點(diǎn)之間的通信,幀確認(rèn)會(huì)降低帶寬, 使用同一接入點(diǎn)的其他工作站的數(shù)量也會(huì)帶來(lái)同樣影響。



  無(wú)線網(wǎng)絡(luò)的特征(比如低且波動(dòng)的帶寬和高延遲)會(huì)歪曲 TCP 度量和傳輸策略。盡管無(wú)線網(wǎng)絡(luò)中的大多數(shù)損耗來(lái)自信號(hào)衰退、干擾以及連接中斷等因素,但是 TCP 假定這些損耗與擁塞有關(guān), 因此它摒棄了降低網(wǎng)絡(luò)流量的算法。有多種項(xiàng)目用來(lái)調(diào)整 TCP 和 Web 瀏覽器的行為以適應(yīng)無(wú)線網(wǎng)絡(luò)。



  結(jié)束語(yǔ)



  在本文中,您瀏覽了是針對(duì)包括 WLAN、Bluetooth、GPRS、GSM 和 IrDA 在內(nèi)的流行的無(wú)線技術(shù)的 Linux 設(shè)備驅(qū)動(dòng)程序和網(wǎng)絡(luò)協(xié)議層。還通過(guò)跟蹤相應(yīng)的代碼路徑和討論相關(guān)的用戶空間工具,了解到不同的無(wú)線設(shè)備如何在 Linux 中工作。



  現(xiàn)在,有了對(duì) Linux 上提供的對(duì)各種無(wú)線技術(shù)、網(wǎng)絡(luò)技術(shù)以及總線技術(shù)的核心支持的理解,您可以修補(bǔ)多種具有不同形成因素的無(wú)線設(shè)備,開發(fā)啟用不被支持的設(shè)備所需的 Linux 內(nèi)核代碼。



  關(guān)于作者



  Sreekrishnan Venkateswaran 擁有印度坎普爾市印度科技學(xué)院的計(jì)算機(jī)科學(xué)碩士學(xué)位。他從 1996 年 2 月開始為 IBM India 工作。 他的興趣包括設(shè)計(jì)設(shè)備驅(qū)動(dòng)程序和網(wǎng)絡(luò)協(xié)議。可以通過(guò) s_krishna@in.ibm.com 與 Sreekrishnan 聯(lián)系。





摘自 賽迪網(wǎng)
   

微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場(chǎng)景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測(cè)試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):6G至簡(jiǎn)無(wú)線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國(guó)聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國(guó)電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國(guó)移動(dòng)算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點(diǎn)本月熱點(diǎn)

     

      最熱通信招聘

      最新招聘信息