<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于S3C2410的CDMA無(wú)線(xiàn)數據傳輸方法

基于S3C2410的CDMA無(wú)線(xiàn)數據傳輸方法

作者: 時(shí)間:2016-12-05 來(lái)源:網(wǎng)絡(luò ) 收藏

  1 引言

本文引用地址:http://dyxdggzs.com/article/201612/341121.htm

  Linux嵌入式系統,具有高性能、低功耗、體積小、可靠性高、源代碼開(kāi)放等優(yōu)點(diǎn),逐漸被越來(lái)越多的人認可并使用,原先只有在PC機上實(shí)現的功能,如今也被移植到了更加方便的嵌入式系統上。近些年嵌入式系統已經(jīng)應用十分廣泛,而隨著(zhù)網(wǎng)絡(luò )特別是無(wú)線(xiàn)網(wǎng)絡(luò )的興起和發(fā)展,將更加快捷方便的無(wú)線(xiàn)網(wǎng)絡(luò )與嵌入式系統相結合更成為了當前研究的熱點(diǎn)。(碼分多址)無(wú)線(xiàn)網(wǎng)絡(luò )具有覆蓋面廣、速度穩定、效率高、成本低等優(yōu)點(diǎn),的網(wǎng)絡(luò )速度最大可達200k/s。本文著(zhù)重介紹了ARM9與無(wú)線(xiàn)網(wǎng)絡(luò )相結合的,進(jìn)行無(wú)線(xiàn)數據傳輸的方法。

  2 軟硬件平臺設計

  這里采用的是三星公司的基于的高端ARM9處理器芯片,適用于高端手持設備和微型智能控制設備的開(kāi)發(fā)。它的主頻可以達到203MHz,內建有MMU(內存管理單元),擴展總線(xiàn)最大頻率100MHz。具有3個(gè)UART、4個(gè)DMA通道、1個(gè)RTC和觸摸屏接口,還具有IIC總線(xiàn)、一個(gè)USB Host,可以?huà)旖訄D片采集終端設備。

  Linux為嵌入式系統提供了一個(gè)極有價(jià)值的選擇,它與Unix相似,是一個(gè)多任務(wù)多進(jìn)程操作系統,支持非常廣泛的硬件,并且源碼完全公開(kāi),可以方便的根據需要修改,而且Linux提供了強大的網(wǎng)絡(luò )功能,使其具有了同其他操作系統相同的地位。Linux可以用于多種硬件平臺,并且受開(kāi)銷(xiāo)和時(shí)間限制小,通過(guò)剪裁、編譯后的Linux內核文件非常小,只有2MB左右,可以方便地燒寫(xiě)入FLASH中,適合嵌入式系統的應用。最重要的是可以在PC機上開(kāi)發(fā),然后移植到硬件平臺上運行。因此,這里我們選擇Linux2.4作為嵌入式的操作系統。

  2.1 系統結構設計

  該系統為實(shí)時(shí)監控系統,也就是說(shuō)當發(fā)生異常情況的是時(shí)候,圖片采集終端自動(dòng)拍攝圖片后,將圖片存儲到系統SDRAM中,并通過(guò)無(wú)線(xiàn)CDMA模塊,將采集到的圖片上傳至Internet,也就是發(fā)送到指定的Email地址中。

  2.2 硬件結構設計

  本嵌入式系統自帶32MB SDRAM和8MB FLASH,將編譯好的Linux內核文件和ramdisk文件系統分別燒寫(xiě)入FALSH中,運行時(shí)再由系統自動(dòng)調入到SDRAM中。引出一個(gè)USB Host連接USB攝像頭用于圖片采集,通過(guò)一個(gè)UART接口連接CDMA無(wú)線(xiàn)Modem,另一個(gè)UART連接PC主機

  3 軟件設計

  3.1 Linux內核編譯

  嵌入式系統資源有限,因此不可能在嵌入式系統之上進(jìn)行程序的編譯,需要在PC機上將程序編譯成嵌入式系統識別的二進(jìn)制代碼,然后再移植到其上。交叉編譯環(huán)境就是用來(lái)在PC機上編譯嵌入式系統可識別代碼的工具。這里用到的交叉編譯環(huán)境是ARM-Linux。把對PPP的支持編譯進(jìn)Linux內核的方法為:在kernel目錄,終端下輸入make menuconfig,選擇Network device support,[*]選擇所有關(guān)于PPP的選項,然后保存退出編譯即可。

  3.2 PPP移植[1]

  PPP(Point-to-Point Protocol)點(diǎn)到點(diǎn),是為在點(diǎn)對點(diǎn)連接上傳輸多協(xié)議數據包提供了一個(gè)標準方法。本文用到的CDMA無(wú)線(xiàn)連網(wǎng)方法,就需要PPP協(xié)議的支持,這里用的版本是PPP-2.4.1和rp-PPPoE-3.7。其編譯方法就是在建立的交叉編譯環(huán)境下編譯,生成pppd和chat等可執行文件,并寫(xiě)入文件系統ramdisk的/bin目錄中。編寫(xiě)三個(gè)撥號腳本文件放在文件系統/ppp目錄下。

  第一個(gè)腳本文件為chap-secrets:

  “card” * “card”

  其中card分別為用戶(hù)名和密碼,*表示對服務(wù)器沒(méi)有限制。

  第二個(gè)腳本文件為cdma1:

  ttyS0 #CDMA Modem連接到串口1上

  19200 #CDMA波特率

  nocrtscts #不采用modem的rts和cts信號線(xiàn)流控

  connect ‘/bin/chat –v –f /etc/ppp/chat/cdma2’ #用chat程序完成連接建立的會(huì )話(huà)過(guò)程,會(huì )話(huà)要通過(guò)/etc/ppp/chat/cdma2文件控制

  debuf #表示pppd工作在調試模式

  nodetach #表示不讓pppd轉入后臺工作

  ipcp-accept-local #表示接受服務(wù)器分配的本機IP地址

  ipcp-accept-remote #表示接受服務(wù)器指定的服務(wù)器IP地址

  defaultroute #表示把服務(wù)器指定的IP地址設定為默認的路由

  user card #表示認證時(shí)用戶(hù)名card,pppd根據該用戶(hù)名,從chat-secrets文件中取得密碼

  第三個(gè)腳本文件為cdma2:

  ABORT “NO CARRIER”

  ABORT “NO DIALTONE”

  ABORT “ERROR”

  ABORT “NO ANSWER”

  ABORT “BUSY”

  TIMEOUT 120

  “”at

  OK atdt#777

  connect

  以上幾行代碼的意思是如果modem撥號過(guò)程中出現了例如NO CARRIER之類(lèi)的返回信息,則取消chat過(guò)程,連接失敗,TIMEOUT 120則表示為連接超時(shí),atdt#777表示撥號至#777。

  設置好后,在開(kāi)發(fā)板環(huán)境下輸入pppd,如果出現亂碼,則說(shuō)明ppp移植正確。鍵入撥號命令pppd call cdma1,生成一個(gè)新的網(wǎng)絡(luò )接口ppp0,服務(wù)器自動(dòng)分配一個(gè)IP地址。此時(shí)PPP的移植及設置結束,也就是說(shuō)現在已經(jīng)創(chuàng )造好了一個(gè)可以上網(wǎng)的嵌入式系統。

  3.3 Email發(fā)送程序設計[2]

  圖片采集終端采集的圖片要發(fā)送到Email中,需要以附件的形式發(fā)送。郵件發(fā)送過(guò)程中,需要對郵件地址、用戶(hù)密碼和附件內容進(jìn)行加密處理,這里采用了Base64加密法。Base64算法就是以3個(gè)字節為單位,當剩下的字符數量不足3個(gè)字節時(shí),則應使用0進(jìn)行填充,依次取6位數據并在前面補上兩個(gè)0形成新的8位編碼,由于3*8=4*6,這樣3個(gè)字節的輸入會(huì )變成4個(gè)字節的輸出,長(cháng)度上增加了1/3。相應地,輸出字符則使用‘=’占位,因此編碼后輸出的文本末尾可能會(huì )出現1至2個(gè)‘=’。

  郵件發(fā)送程序經(jīng)過(guò)了以下幾個(gè)過(guò)程[3]:

  (1)socket(int domain,int type,int protocol);

  該函數建立新的socket,以建立一個(gè)新的通信端口并獲得文件描述符。函數中的參數domain確定一個(gè)協(xié)議族,這里定義為AF_INET,type指定套接字類(lèi)型,該處使用SOCK_STREAM,protocol一般為0,使用默認協(xié)議。

  (2)connect(int sockfd,struct sockaddr *address,size_t address_len);

  當調用socket建立傳輸端口后,調用connect函數建立與遠程服務(wù)器相連的連接線(xiàn)路。

  (3) recv(int sockfd,void *buf,int len,unsigned int flags);

  該函數用于接收從套接口傳來(lái)的信息,socket用connect連接的套接口,buf是指向內存塊的指針,用于存儲接受的消息,len指明內存塊的大小,flags是一個(gè)操作標志。

  (4)Base64_Code();//對登陸信息或附件內容進(jìn)行加密

  (5)send(int sockfd,const void *msg,int len,unsigned int flags);

  該函數是用來(lái)通過(guò)套接口向其它程序傳遞數據的。sockfd是用來(lái)傳輸數據的socked描述符,msg是一個(gè)指向要發(fā)送數據的指針,len是以字節為單位的數據的長(cháng)度,flags一般情況下設置為0。

  4 總結

  實(shí)驗證明用CDMA無(wú)線(xiàn)網(wǎng)絡(luò )發(fā)送數據,速度比較穩定,有時(shí)會(huì )由于網(wǎng)絡(luò )原因發(fā)送失敗,但是成功率較高,收到的圖片數據丟幀現象不明顯。該方法可用于工業(yè)現場(chǎng)的監視以及家庭監控系統以及遠程的數據采集。由于圖片是發(fā)送到Email中的,因此運行成本較低,有較大的推廣空間。

  本文創(chuàng )新點(diǎn):目前基于GPRS的無(wú)線(xiàn)數據傳輸方法研究的較多,而CDMA網(wǎng)絡(luò )的高性能特性,逐漸引起了研究者的注意,本文就結合CDMA網(wǎng)絡(luò )設計了一套與嵌入式相結合的系統,,將采集的現場(chǎng)圖片,以附件的形式發(fā)送到Email中。



關(guān)鍵詞: S3C2410 CDMA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>