freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

參考]基于gprsgeneralpacketradioservice遠程無線數(shù)據(jù)采集系統(tǒng)設(shè)計-資料下載頁

2024-11-16 23:22本頁面

【導(dǎo)讀】早期的遠程數(shù)據(jù)采集技術(shù)是非在線、非實時的采集方式,而現(xiàn)代的遠程采。就可以獲得現(xiàn)場的實時數(shù)據(jù),對現(xiàn)場的情況進行監(jiān)督和分析。的實時性和可靠性。本文中設(shè)計了一種基于GPRS的遠程無線數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)是以移動公。司的GPRS網(wǎng)絡(luò)作為遠程數(shù)據(jù)的傳輸平臺。文中首先對GPRS網(wǎng)絡(luò)的體系結(jié)構(gòu)和。工作原理作了詳細的介紹。其次,分別論述了本數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計和軟件。硬件設(shè)計部分采用三星公司的ARM9s3C2440處理器,設(shè)計了相關(guān)的外圍。軟件部分采用嵌入式Linux作為它的操作系統(tǒng),移植了PPP協(xié)議作為數(shù)據(jù)。將會有著更為廣闊的發(fā)展空間。

  

【正文】 ,即可以編 譯成模塊。而圓括號的內(nèi)容是要你在所提供的幾個選項中選擇一項。 配置內(nèi)核是很麻煩的一步工作,在實際的配置過程中,大部分的選項可以使用其缺省值,只有少部分是根據(jù)用戶的需要進行選擇。選擇的原則是將與內(nèi)核其他部分關(guān)系較遠且不經(jīng)常使用的部分功能代碼編譯成為可加載模塊,有利于減少內(nèi)核的長度,減小內(nèi)核消耗的內(nèi)存,簡化該功能相應(yīng)的環(huán)境改變時對內(nèi)核的影響 。不需要的功能就不用選 。與內(nèi)核關(guān)系緊密且經(jīng)常使用的部分功能代碼就直接編譯到內(nèi)核中。 主要配置選項的說明如下 : ①選擇 Generalsetup 出現(xiàn)常規(guī)設(shè)置 在這項里面主要設(shè)置項有 : Automatically append version information to the version string 自動在版本字符串后面添加版本信息,編譯時需要有 perl 以及 git 倉庫支持 Support for paging of anonymous memory(swap) 使用交換分區(qū)或者交換文件來做為虛擬內(nèi)存 System V IPC SystemV進程間通信 (IPC)支持,許多程序需要這個功能,必選 ② Enable loadable module support 可加載模塊支持 打開可加載模塊支持,如果打開它則必須通過 ” make modules_install”把內(nèi)核模塊安裝在 /lib/modules/中 Module unloading 允許卸載已經(jīng)加載的模塊 Module versioning support 允許使用其他內(nèi)核版本的模塊,可能會引起其他不必要的麻煩,所以這里去掉。 Source checksum for all modules 為所有的模塊校驗源碼,這里沒有必要 。 Automatic kernel module loading 讓內(nèi)核通過運行 modprobe 來自動加載所需要的模塊,比如可以自動解決模塊的依賴關(guān)系。 ③ systeml Type 用于選擇中央處理器 (CPU)類型及特性 S3C2440 Machines ④ Networking 網(wǎng)絡(luò)設(shè)置選項 ⑤ Device Drivers 設(shè)備驅(qū)動選擇 Network device support 去掉千兆和萬兆以太網(wǎng)的支持 ,保留 10/l00M Ethemet 即可。還要移植的DM9000 是 100M Ethemet 接口, 在這里還有出現(xiàn)選擇具體網(wǎng)卡型號的選項,因為還不支持, S3C2440 芯片上并沒有直接集成網(wǎng)卡的控制器,而是需要通過外部拓展的接口實現(xiàn),所以這個也要單獨進行移植。 ⑥ File System 文件系統(tǒng) 因為我們使用了 carmfs,是只讀文件系統(tǒng),所以要選擇支持 。 配置完成之后,其他沒有提到的地方使用默認的選項,然后保存退出 。 然后,進行編譯,使用 “ make zImage” 或者是 “ make bzImage”,建立壓縮的內(nèi)核鏡像文件,在盯 crch/arm/boot 目錄下生成 zImage 文件。至此,完成了內(nèi)核源代碼的編譯,這下可以把內(nèi)核壓縮文件下載到 S3C2440 硬件板中。 制作 cramfs 文件系統(tǒng) 要讓系統(tǒng)正常地啟動,還需要制作嵌入式 Linux 文件系統(tǒng)。在嵌入式系統(tǒng)中常見的文件系統(tǒng)有 cramfs、 romfs、 jffs、 yaffs 等,本設(shè)計中采用了 cramfs 文件系統(tǒng)。 Cramfs 文件系統(tǒng)是一種經(jīng)壓縮的、極為簡單的只讀文件系統(tǒng),因此非常適合嵌入式系統(tǒng)。 在嵌 入式 Linux 中, busybox 是構(gòu)造文件系統(tǒng)最常用的軟件工具包,它被非常形象的稱為嵌入式 Linux 系統(tǒng)中的“瑞士軍 //”,因為它將許多的 Linux 命令和工具結(jié)合到了一個單獨的可執(zhí)行程序 (busybox)中。雖然和 GNU 比較起來,busybox 提供的功能和參數(shù)略少,但在比較小的系統(tǒng)或者是嵌入式系統(tǒng)之中已經(jīng)足夠了。 Busybox 在設(shè)計上就考慮到了硬件資源受限的特殊環(huán)境。它采用一種很巧妙的辦法減少了自己的體積 : 所有的命令都是通過插件的方式集中到一個可執(zhí)行文件當(dāng)中,在實際應(yīng)用過程中,通過不同的符號鏈接來確定到底要 執(zhí)行哪個操作。采用單一的執(zhí)行文件的方式,最大限度地共享了程序代碼,對資源比較緊張的系統(tǒng)來說,是再合適不過了。在 busybox的編譯過程中,可以很方便地加減它的“插件”,最后的符號鏈接也可以由編譯系統(tǒng)自動生成。下面使用 busybox 構(gòu)建 cramfs 文件系統(tǒng)的過程。 首先從 busybox 網(wǎng)站下載 busybox源碼,進行解壓,接下來就是實際需要進行 busybox 的配置。 在終端所使用的命令行有 : tar jxvf busybox 。 make defconfig。 make menuconfig。 此時,需要設(shè)置平臺相關(guān)的交叉編譯選項,操作步驟為 :先選中 ”Bulld OPtion”項的“ Do you want to build Busybox with a Cross Complier?”選項,然后將“ Cross Complier prefix”設(shè)置為“ /usr/local/arm/”。 下一步編譯并安裝 busybox。在終端執(zhí)行命令 make,make install PREFIX= /home/david/fs2440/cramfs。其中 PREFIX 用于指定安裝目錄,如果不設(shè)置該選項,則默認在當(dāng)前目錄下創(chuàng)建 install 目錄。創(chuàng)建安裝目錄的內(nèi)容如下所示 : [root@localhost cramfs]ls bin linuxrc sbin usr 下面通過創(chuàng)建系統(tǒng)所需要的目錄和文件來完善文件系統(tǒng)的內(nèi)容 : [root@localhost cramfs]mkdir mnt root var tmp proc boot etc lib [root@localhost cramfs]mkdir/var/{lock,log,run} 接下來要創(chuàng)建一些重要的文件。首先要創(chuàng)建 /etc/inittab 和 /etc/fstab 文件。前者是 linux 系統(tǒng)啟動之后第一個被訪問的腳本文件,而后者是定義了文件系統(tǒng)的各個掛接點的文件。以上用 busybox 創(chuàng)建了文件系統(tǒng)的內(nèi)容,下面要創(chuàng)建 cramfs文件系統(tǒng)鏡像文件。 制作 cramfs 映像文件需要用到的工具是 mkcramfs,下面是使用 mkcramfs 制作 cramfs 映像文件,所使用的命令為“ mkcramfs”就可把以構(gòu)建的文件系統(tǒng)制作成只讀的、壓縮的 cramfs 文件系統(tǒng)了。這樣在 ARM 的 Linux 系統(tǒng) 啟動后,內(nèi)核就會把它加載到內(nèi)存中,進行解壓,其上面的應(yīng)用程序就可以在 ARM 板上運行了。最后就是將制作的 cramfs 文件映像下載到 ARM 板子上。至此就完成了嵌入式 Linux 操作系統(tǒng)的文件系統(tǒng)的制作。 GPRS 應(yīng)用程序的設(shè)計 GPRS 無線通信的流程 通過 GPRS 模塊進行數(shù)據(jù)傳輸其實就是利用移動通信網(wǎng)絡(luò)與 Intemet 網(wǎng)絡(luò)進行互聯(lián),因而傳輸?shù)臄?shù)據(jù)需要符合 Inte 網(wǎng)絡(luò)的 TCP/IP 協(xié)議的標(biāo)準(zhǔn)。 實現(xiàn) GPRS 數(shù)據(jù)傳輸?shù)倪^程為 :首先利用 ARM處理器控制 GPRS 模塊實現(xiàn)與Intemct 網(wǎng)絡(luò)的連接 ,通過 PPP 協(xié)議獲得 IP 地址 。然后將經(jīng)過 TCP/IP 以及 PPP 協(xié)議封裝的數(shù)據(jù)通過 RS232 串口發(fā)送給 GPRS 模塊。 GPRS 無線通信的大致流程如下 : (1)物理過程。在對 GPRS Modem模塊進行參數(shù)設(shè)置后, ARM 利用 AT 指令通過 GPRS Modem撥號。正確反饋及應(yīng)答后,一條物理通道即 GPRS 信道就在系統(tǒng)中的 GPRS Modem和 GPRS 網(wǎng)絡(luò)之間建立起來。 (2)數(shù)據(jù)過程。 PPP協(xié)議將原始的 GPRS物理層連接改造成無差錯的數(shù)據(jù)鏈路,系統(tǒng)將遠程登錄 Inte,并得到 GPRS 網(wǎng)關(guān)分配的 lP 地址。 (3)網(wǎng)絡(luò)過程。利用 IP 協(xié)議作為網(wǎng)絡(luò)層協(xié)議,經(jīng)過 IP 路由選擇可實現(xiàn)系統(tǒng)與連在 Inte 的終端進行數(shù)據(jù)交換。 (4)傳輸過程。選擇 TCP 作為傳輸層協(xié)議,為數(shù)據(jù)傳輸提供面向連接的可靠服務(wù)。 在通訊過程中, ARM與 GPRS Modem的數(shù)據(jù)通信格式有兩種 :AT指令和 PPP幀。 AT 指令格式表示從串口發(fā)送的所有數(shù)據(jù)都發(fā)送給了 GPRS 模塊, PPP 幀格式表示從串口發(fā)送的所有數(shù)據(jù)都透明的發(fā)送給了 GGSN。 GPRS 通信的軟件流程圖如下圖 所示 : 串口程序的設(shè)計 由于 GPRS 模塊采用的是串口與嵌入式處理器來連接,因此 LINUX 下的串口設(shè)置和驅(qū)動就顯得非常重要。下面較為詳細的介紹串口的設(shè)置以及相應(yīng)的操作。 S3C2440 的 UART(通用異步串口 )單元提供 3 個獨立的異步串口 I/O 端口,每一個都可以在中斷和 DMA 兩種模式下進行,支持最高波特率 115200b/s。每一個 UART 通道包含 2 個 16 位 FIFO 分別提供給接收和發(fā)送。 最基本的設(shè)置串口包括波特率設(shè)置、校驗位和停止位的設(shè)置,主要是設(shè)置struct termios 結(jié)構(gòu)體的各成員值。 與其他字符設(shè)備一樣,串口設(shè)備文件 (如 /dev/tts/0)可以接收典型的文件操作系統(tǒng)調(diào)用,包括 open、 read、 write、 close 等。 可以通過下面的代碼打開或者關(guān)閉串口設(shè)備 : Int fd。 //以讀寫方式打開串口 Fd=open(“/dev/ttys0”,o_rdWR)。 If(l= =rd) { Perror(“error!”)。 } 。 Close(fd)。 Read write 方法可以用來控制串口接受或發(fā)送數(shù)據(jù)。 通過串口終端設(shè)置串口通信的波特率、工作模式等狀態(tài),這里需要調(diào)用頭文件 : include 最基本的串口設(shè)置包括波特率的設(shè)置、校驗位和停止位的設(shè)置,主要是設(shè)置struct termios 結(jié)構(gòu)體的各個成員值。 Struet termio { Unsigned short c_iflag。 //輸入模式標(biāo)志 Unsigned short c_oflag。 //輸出模式標(biāo)志 Unsigned short c_cflag。 //控制模式標(biāo)志 Unsigned short c_lflag。 //本地模式標(biāo)志 Unsigned short c_line。 //線路規(guī)則 Unsigned short c_cc[NCC]。 //控制符 } 在這里主要考慮一些常用的設(shè)置,如下所示 : 波特率的設(shè)置 Struct termios OPt。 Tegetchattr(fd, amp。Opt)。 Cfsetospeed(amp。OPt, B115200)。 Cfsetospeed(amp。OPt, B115200)。//設(shè)置為 115200b/s Tcsetattr(fd, TCSANOW{amp。Opt): (2)校驗位和停止位的設(shè)置 (8 位無效驗, 1 位停止位模 式, 8N1) amp。=~PAREND amp。=~CSTOPB amp。=~CSIZE: I =~CS8。 Tcsetattr(fd, TCSANOW, amp。OPt)。 (3)設(shè)置原始工作模式 amp。=~(1CANON ECHO ECHOE ISIG)。 //輸入 amp。=~OPOST。 //輸出 TCsetattr(fd, TCSANOW, amp。OPt)。 系 統(tǒng)調(diào)用函數(shù) Tcsetattr 可以獲得串口的屬性, 調(diào)用 Tcsetattr 時,通過使用TCSANOW 參數(shù)可以讓設(shè)置的屬性立即生效。 GPRS 撥號的實現(xiàn) PPP(Pointto PoiniProtocol,點對點協(xié)議 )是在直接連接的串口鏈路上創(chuàng)建和運行 Ip(Inter Protoeol,網(wǎng)絡(luò)協(xié)議 )或者其他協(xié)議的一種機制。在 Linux 下,通過 PPP 可以將主機與一個 PPP 服務(wù)器連接并進入該服務(wù)器所連接的網(wǎng)絡(luò)資源,就像直接連上了那個網(wǎng)絡(luò)一樣,因為 PPP 是端對端系統(tǒng),也可以使用兩臺 Li nux服務(wù) 器通過 PPP 將兩個網(wǎng)絡(luò)連接在一起,例如一個局域網(wǎng)和一個廣域網(wǎng)。本文主要是通過串口與 GPRS 模塊連接,實現(xiàn)無線撥號上網(wǎng)的過程。 在 Linux 下對 PPP 的支持需要內(nèi)核和應(yīng)用程序配合管理,在配置 Linux 內(nèi)核時,需要選擇對 PPP 的支持。對于 內(nèi)核,可以在 Networking 菜單下,選擇添加對串口終端
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1