當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于S3C2410芯片Linux-Wlan-ng的移植和應(yīng)用

1.引言
   嵌入式技術(shù)、網(wǎng)絡(luò)技術(shù)和多媒體技術(shù)的結(jié)合不僅解決了模擬圖像在傳輸過程中的失真等問題,還使得設(shè)備的體積更加微型化、智能化和網(wǎng)絡(luò)化。伴隨網(wǎng)絡(luò)的發(fā)展,運(yùn)用網(wǎng)絡(luò)設(shè)備作為傳輸媒介的圖像數(shù)據(jù)采集及傳輸系統(tǒng)成為主流。本文采用在 S3C2410芯片上建立Linux操作系統(tǒng),在操作體統(tǒng)基礎(chǔ)上移植 Linux-Wlan-ng驅(qū)動(dòng)程序,從而實(shí)現(xiàn)開發(fā)板具有無線通信能力。在Linux操作系統(tǒng)內(nèi)核里添加OV511驅(qū)動(dòng)程序,從而實(shí)現(xiàn) Linux下驅(qū)動(dòng)Webeye V 2000攝像頭,通過Video4Linux接口控制攝像頭參數(shù),圖片的格式和窗口大小等等。將采集到的圖像數(shù)據(jù)通過網(wǎng)絡(luò)接口傳送到上位機(jī)或遠(yuǎn)程終端進(jìn)行處理。本文主要采集的是數(shù)控系統(tǒng)中加工零件的圖像信息,進(jìn)行數(shù)據(jù)處理程序有:恢復(fù) YUV格式的彩色圖,提取Y,U和V分量值,恢復(fù)Y格式的灰度圖,精度測(cè)量,邊緣檢測(cè),二值化和特征值提取等等。
2. 系統(tǒng)硬件平臺(tái)

  本文系統(tǒng)硬件平臺(tái)的處理器采用 Samsung公司的集成有 ARM920T內(nèi)核的處理器S3C2410,該處理器資源豐富,具有 16KB的指令 Cache和 16KB數(shù)據(jù) Cache、MMU虛擬存儲(chǔ)器管理器、LCD控制器、支持 NAND Flash系統(tǒng)引導(dǎo), RAM控制器、3通道 UART、4通道 DMA、4通道帶 PWM定時(shí)器、RTC、并行 I/O口、8通道 10位 ADC、觸摸屏接口、 IIC接口、IIS接口、2個(gè) USB接口控制器、 2通道 SPI及內(nèi)部 PLL時(shí)鐘倍頻器,主頻昀高可達(dá) 203MHz。此外,在處理器豐富資源的基礎(chǔ)上還進(jìn)行了相關(guān)的配置和擴(kuò)展,配置了 64MB的 Flash和 64MB的 SDRAM,并引出了兩個(gè) HOST USB接口。首先在一個(gè) USB接口上外接一個(gè)帶 USB口的攝像頭 Webeye V 2000,其內(nèi)部采用的是 ov7620、ov511和一個(gè)存儲(chǔ)芯片。然后在另一個(gè) USB接口上外接的 USB口的無線網(wǎng)卡,以無線方式發(fā)送圖像數(shù)據(jù)到上位機(jī)或遠(yuǎn)程終端。無線網(wǎng)卡采用 NETGEAR MA111,它基于 IEEE802.11b協(xié)議,昀大傳輸率為
11Mbps,它的室內(nèi)傳輸距離可達(dá) 100米,室外極限傳輸距離接近 500米,并可以通過自行調(diào)整不同傳輸率,工作在 11、5.5、2、1Mbps,來確保傳輸效果。 Samsung 2410并行 I/O口連接到運(yùn)動(dòng)控制芯片 MAX314,由 MAX314控制電機(jī)運(yùn)動(dòng),構(gòu)成嵌入式數(shù)控系統(tǒng)。整個(gè)系統(tǒng)的硬件概圖如圖 2.1所示:

500)this.style.width=500;" border="0" /> 


3. WLAN網(wǎng)卡驅(qū)動(dòng)的移植
  本文選擇在嵌入式 Linux操作系統(tǒng)層面上對(duì)無線網(wǎng)卡驅(qū)動(dòng)進(jìn)行移植。 
3.1 嵌入式LINUX操作系統(tǒng) Linux具有內(nèi)核小,多任務(wù)、多進(jìn)程的特征,實(shí)時(shí)性效率高,源代碼開放,內(nèi)核直接支持網(wǎng)絡(luò)等優(yōu)點(diǎn)。由于嵌入式系統(tǒng)的硬件資源十分有限,因此不能直接把Linux作為操作系統(tǒng),需要針對(duì)具體的應(yīng)用功能配置內(nèi)核,制作根文件系統(tǒng)。只有這樣才能將整個(gè)系統(tǒng)能夠存放到容量較小的Flash中。Linux的動(dòng)態(tài)模塊加載使Linux的裁減極為方便,高度模塊化和模塊化使添加非常容易。根據(jù)圖像采集模塊,無線傳輸模塊和數(shù)控系統(tǒng)模塊的需要配置適合的嵌入式Linux操作系統(tǒng)。系統(tǒng)采用VIVI啟動(dòng),內(nèi)核采用Linux-2.4.18,根文件系統(tǒng)采用Cramfs文件系統(tǒng)。 [!--empirenews.page--]
3.2 USB無線驅(qū)動(dòng)程序的移植

   由于Linux操作系統(tǒng)的開源特性和USB無線網(wǎng)卡逐漸成為標(biāo)準(zhǔn)設(shè)備,網(wǎng)絡(luò)上存在一部分開放的驅(qū)動(dòng)源碼程序。本文在此基礎(chǔ)上做一些修改,移植到嵌入式平臺(tái)下即可成功驅(qū)動(dòng)設(shè)備。NETGEAR公司的MA111型網(wǎng)卡,其芯片為prism2系列,故可選用linux-wlan-ng系列的驅(qū)動(dòng)程序,驅(qū)動(dòng)程序可以在http://www.linux-wlan.com網(wǎng)站上下載。編譯目標(biāo)文件需要建立宿主機(jī)平臺(tái),宿主機(jī)的操作平臺(tái)為:X86+Redhat 9.0操作系統(tǒng),在此基礎(chǔ)上建立交叉編譯環(huán)境arm-linux-gcc。編譯的具體步驟如下:
①下載USB無線網(wǎng)卡驅(qū)動(dòng)程序并解壓:
tar zxvf linux-wlan-ng-0.2.1-pre11.tar.gz
②vi src/mkmeta/Makefile
在Makefile文件中添加變量HOST_CC= gcc
③運(yùn)用make config命令配置運(yùn)行腳本
Build Prism2.5 USB (_usb) driver? (y/n) [y]: y
Linux source directory:根據(jù)具體情況而定
Prefix for build host compiler? (rarely needed) []: arm-linux-
④運(yùn)用make命令對(duì)配置好的驅(qū)動(dòng)程序進(jìn)行編譯
⑤驅(qū)動(dòng)程序編譯好后(prism2_usb.o和p80211.o)插上無線網(wǎng)卡,手動(dòng)加載驅(qū)動(dòng)程序,命令
如下:
#insmod prism2_usb.o
#insmod p80211.o prism2_doreset=1

4.無線傳輸測(cè)試

  無線數(shù)據(jù)的傳輸測(cè)試包括兩種測(cè)試: AP模式和 ADHOC模式。在具體的測(cè)試過程中需要
關(guān)閉etho,打開wlan0。在 AP模式情況下設(shè)置開發(fā)板的 IP地址為:192.168.0.221,而無線路由器的 IP地址為:192.168.0.1,SSID為:AIBO_W_NET。對(duì) USB 無線網(wǎng)卡設(shè)備進(jìn)行配置, 包括設(shè)置網(wǎng)絡(luò)名稱、安全密碼、以及IP 地址等,AP模式下具體命令和測(cè)試結(jié)果如下:
./wlanctl wlan0 lnxreq_ifstate ifstate=enable
./wlanctl wlan0 lnxreq_autojoin ssid=AIBO_W_NET authtype=opensystem
./ifconfig eth0 down
./ifconfig wlan0 192.168.0.221 netmask 255.255.255.0 broadcast 192.168.0.255

 

  經(jīng)過以上命令配置后,運(yùn)用PING命令測(cè)試開發(fā)板和路由器之間的通信完全暢通,說明開發(fā)板和上位機(jī)可以無線通信,為項(xiàng)目實(shí)現(xiàn)無線傳輸圖像數(shù)據(jù)奠定基礎(chǔ)。如圖4.1所示: 
 
 500)this.style.width=500;" border="0" />


5. 無線傳輸?shù)膽?yīng)用
  針對(duì)S3C2410芯片和Linux操作系統(tǒng)平臺(tái)移植Linux-Wlan-ng主要應(yīng)用到嵌入式數(shù)控系統(tǒng)中采集加工零件的圖像數(shù)據(jù),監(jiān)視數(shù)控系統(tǒng)中零件加工過程和精確測(cè)量。因?yàn)長(zhǎng)inux操作系統(tǒng)中嵌有ov511芯片的驅(qū)動(dòng),故在編譯Linux操作系統(tǒng)時(shí)需要加載ov511驅(qū)動(dòng),有動(dòng)態(tài)和靜態(tài)兩種加載方式。本文采用靜態(tài)加載方式,在系統(tǒng)啟動(dòng)時(shí)就不需要手動(dòng)加載驅(qū)動(dòng)程序。主要步驟:
①(*)選擇Multimedia device->下的Video for linux。加載video4linux模塊, 為視頻采集設(shè)備提供了編程接口;
②在usb support->目錄下(*)選擇support for usb和usb camera ov511 support。這使得在內(nèi)核中加入了對(duì)采用OV511接口芯片的USB數(shù)字?jǐn)z像頭的驅(qū)動(dòng)支持。 [!--empirenews.page--]
  軟件通過Video4Linux編程接口對(duì)圖像或視頻數(shù)據(jù)進(jìn)行采集,并編寫相應(yīng)的網(wǎng)絡(luò)傳輸程序?qū)崿F(xiàn)遠(yuǎn)程傳輸圖像數(shù)據(jù)。Video4Linux是Linux中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動(dòng),它為針對(duì)視頻設(shè)備的應(yīng)用程序編程提供一系列接口函數(shù),這些視頻設(shè)備包括現(xiàn)今市場(chǎng)上流行的TV卡、視頻捕捉卡和USB攝像頭等。對(duì)于USB口攝像頭,其驅(qū)動(dòng)程序中需要提供基本的I/O操作接口函數(shù)open、read、write、close的實(shí)現(xiàn)。對(duì)中斷的處理實(shí)現(xiàn),內(nèi)存映射功能以及對(duì)I/O通道的控制接口函數(shù)ioctl的實(shí)現(xiàn)等,并把它們定義在struct file_operations中。本系統(tǒng)采用內(nèi)存映射法,即mmap()方式截取圖像或視頻數(shù)據(jù)。mmap()函數(shù)調(diào)用使得進(jìn)程之間通過映射同一個(gè)普通文件實(shí)現(xiàn)共享內(nèi)存。該映射內(nèi)容區(qū)可讀可寫并且不同進(jìn)程間可共享,不需要任何數(shù)據(jù)的拷貝。采集到圖像數(shù)據(jù)后,運(yùn)用網(wǎng)絡(luò)接口無線傳輸?shù)缴衔粰C(jī)或遠(yuǎn)程終端上進(jìn)行數(shù)據(jù)處理。上位機(jī)中涉及到的程序有:將YUV420P格式的數(shù)據(jù)轉(zhuǎn)換成RGB格式,提取Y,U和V分量值,將YUV格式的數(shù)據(jù)文件轉(zhuǎn)換成txt文件便于運(yùn)用Matlab仿真,測(cè)量加工零件的距離等(涉及到單目測(cè)距方法,在以后的論文中討論);套接口是網(wǎng)絡(luò)通信的基礎(chǔ),在Linux下定義的一些套接口的函數(shù)大致如下:對(duì)于一個(gè)簡(jiǎn)單TCP/IP服務(wù)器,其基本結(jié)構(gòu)如下所示: 
①建立套接字函數(shù)socket();②綁定地址和端口函數(shù)bind();③建立套接口隊(duì)列函數(shù)listen();④接收連接函數(shù)accept();⑤處理連接函數(shù)read()/write();⑥關(guān)閉套接口close()。
與之對(duì)應(yīng)的客戶程序的基本結(jié)構(gòu)如下所示:
①建立套接字函數(shù)socket();②連接服務(wù)器connect();③處理連接函數(shù)write()/read ();④關(guān)閉套接口close();
運(yùn)用無線網(wǎng)絡(luò)傳回圖像數(shù)據(jù)恢復(fù)的圖片如圖5.1,5.2和5.3所示(僅提取Y分量即灰度圖,大小320X240,攝像頭和黑斑距離50CM,+X代表攝像頭向右移動(dòng)XCM): 
 

500)this.style.width=500;" border="0" />


6. 結(jié)束語
  本文提出了一套基于嵌入式平臺(tái)(S3C2410芯片+Linux操作系統(tǒng))的圖像采集、無線傳輸和數(shù)控系統(tǒng)的設(shè)計(jì)和應(yīng)用。在嵌入式數(shù)控系統(tǒng)加工零件過程中,運(yùn)用圖像采集模塊和無線傳輸模塊獲取零件加工的過程,當(dāng)前狀態(tài)和精確測(cè)量。應(yīng)用結(jié)果證明:系統(tǒng)很好的完成了圖像采集和無線傳輸,得到的圖像清晰,采集的數(shù)據(jù)可用于圖像處理。特別是:平臺(tái)中無線傳輸模塊和數(shù)控制系統(tǒng)模塊的結(jié)合實(shí)現(xiàn)傳遞信息,共享資源;使得數(shù)控領(lǐng)域具有分布式,移動(dòng)性,微型化和智能化等特點(diǎn)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉