当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于S3C2410芯片Linux-Wlan-ng的移植和应用

1.引言
   嵌入式技术、网络技术和多媒体技术的结合不仅解决了模拟图像在传输过程中的失真等问题,还使得设备的体积更加微型化、智能化和网络化。伴随网络的发展,运用网络设备作为传输媒介的图像数据采集及传输系统成为主流。本文采用在 S3C2410芯片上建立Linux操作系统,在操作体统基础上移植 Linux-Wlan-ng驱动程序,从而实现开发板具有无线通信能力。在Linux操作系统内核里添加OV511驱动程序,从而实现 Linux下驱动Webeye V 2000摄像头,通过Video4Linux接口控制摄像头参数,图片的格式和窗口大小等等。将采集到的图像数据通过网络接口传送到上位机或远程终端进行处理。本文主要采集的是数控系统中加工零件的图像信息,进行数据处理程序有:恢复 YUV格式的彩色图,提取Y,U和V分量值,恢复Y格式的灰度图,精度测量,边缘检测,二值化和特征值提取等等。
2. 系统硬件平台

  本文系统硬件平台的处理器采用 Samsung公司的集成有 ARM920T内核的处理器S3C2410,该处理器资源丰富,具有 16KB的指令 Cache和 16KB数据 Cache、MMU虚拟存储器管理器、LCD控制器、支持 NAND Flash系统引导, RAM控制器、3通道 UART、4通道 DMA、4通道带 PWM定时器、RTC、并行 I/O口、8通道 10位 ADC、触摸屏接口、 IIC接口、IIS接口、2个 USB接口控制器、 2通道 SPI及内部 PLL时钟倍频器,主频昀高可达 203MHz。此外,在处理器丰富资源的基础上还进行了相关的配置和扩展,配置了 64MB的 Flash和 64MB的 SDRAM,并引出了两个 HOST USB接口。首先在一个 USB接口上外接一个带 USB口的摄像头 Webeye V 2000,其内部采用的是 ov7620、ov511和一个存储芯片。然后在另一个 USB接口上外接的 USB口的无线网卡,以无线方式发送图像数据到上位机或远程终端。无线网卡采用 NETGEAR MA111,它基于 IEEE802.11b协议,昀大传输率为
11Mbps,它的室内传输距离可达 100米,室外极限传输距离接近 500米,并可以通过自行调整不同传输率,工作在 11、5.5、2、1Mbps,来确保传输效果。 Samsung 2410并行 I/O口连接到运动控制芯片 MAX314,由 MAX314控制电机运动,构成嵌入式数控系统。整个系统的硬件概图如图 2.1所示:

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


3. WLAN网卡驱动的移植
  本文选择在嵌入式 Linux操作系统层面上对无线网卡驱动进行移植。 
3.1 嵌入式LINUX操作系统 Linux具有内核小,多任务、多进程的特征,实时性效率高,源代码开放,内核直接支持网络等优点。由于嵌入式系统的硬件资源十分有限,因此不能直接把Linux作为操作系统,需要针对具体的应用功能配置内核,制作根文件系统。只有这样才能将整个系统能够存放到容量较小的Flash中。Linux的动态模块加载使Linux的裁减极为方便,高度模块化和模块化使添加非常容易。根据图像采集模块,无线传输模块和数控系统模块的需要配置适合的嵌入式Linux操作系统。系统采用VIVI启动,内核采用Linux-2.4.18,根文件系统采用Cramfs文件系统。 [!--empirenews.page--]
3.2 USB无线驱动程序的移植

   由于Linux操作系统的开源特性和USB无线网卡逐渐成为标准设备,网络上存在一部分开放的驱动源码程序。本文在此基础上做一些修改,移植到嵌入式平台下即可成功驱动设备。NETGEAR公司的MA111型网卡,其芯片为prism2系列,故可选用linux-wlan-ng系列的驱动程序,驱动程序可以在http://www.linux-wlan.com网站上下载。编译目标文件需要建立宿主机平台,宿主机的操作平台为:X86+Redhat 9.0操作系统,在此基础上建立交叉编译环境arm-linux-gcc。编译的具体步骤如下:
①下载USB无线网卡驱动程序并解压:
tar zxvf linux-wlan-ng-0.2.1-pre11.tar.gz
②vi src/mkmeta/Makefile
在Makefile文件中添加变量HOST_CC= gcc
③运用make config命令配置运行脚本
Build Prism2.5 USB (_usb) driver? (y/n) [y]: y
Linux source directory:根据具体情况而定
Prefix for build host compiler? (rarely needed) []: arm-linux-
④运用make命令对配置好的驱动程序进行编译
⑤驱动程序编译好后(prism2_usb.o和p80211.o)插上无线网卡,手动加载驱动程序,命令
如下:
#insmod prism2_usb.o
#insmod p80211.o prism2_doreset=1

4.无线传输测试

  无线数据的传输测试包括两种测试: AP模式和 ADHOC模式。在具体的测试过程中需要
关闭etho,打开wlan0。在 AP模式情况下设置开发板的 IP地址为:192.168.0.221,而无线路由器的 IP地址为:192.168.0.1,SSID为:AIBO_W_NET。对 USB 无线网卡设备进行配置, 包括设置网络名称、安全密码、以及IP 地址等,AP模式下具体命令和测试结果如下:
./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

 

  经过以上命令配置后,运用PING命令测试开发板和路由器之间的通信完全畅通,说明开发板和上位机可以无线通信,为项目实现无线传输图像数据奠定基础。如图4.1所示: 
 
 500)this.style.width=500;" border="0" />


5. 无线传输的应用
  针对S3C2410芯片和Linux操作系统平台移植Linux-Wlan-ng主要应用到嵌入式数控系统中采集加工零件的图像数据,监视数控系统中零件加工过程和精确测量。因为Linux操作系统中嵌有ov511芯片的驱动,故在编译Linux操作系统时需要加载ov511驱动,有动态和静态两种加载方式。本文采用静态加载方式,在系统启动时就不需要手动加载驱动程序。主要步骤:
①(*)选择Multimedia device->下的Video for linux。加载video4linux模块, 为视频采集设备提供了编程接口;
②在usb support->目录下(*)选择support for usb和usb camera ov511 support。这使得在内核中加入了对采用OV511接口芯片的USB数字摄像头的驱动支持。 [!--empirenews.page--]
  软件通过Video4Linux编程接口对图像或视频数据进行采集,并编写相应的网络传输程序实现远程传输图像数据。Video4Linux是Linux中关于视频设备的内核驱动,它为针对视频设备的应用程序编程提供一系列接口函数,这些视频设备包括现今市场上流行的TV卡、视频捕捉卡和USB摄像头等。对于USB口摄像头,其驱动程序中需要提供基本的I/O操作接口函数open、read、write、close的实现。对中断的处理实现,内存映射功能以及对I/O通道的控制接口函数ioctl的实现等,并把它们定义在struct file_operations中。本系统采用内存映射法,即mmap()方式截取图像或视频数据。mmap()函数调用使得进程之间通过映射同一个普通文件实现共享内存。该映射内容区可读可写并且不同进程间可共享,不需要任何数据的拷贝。采集到图像数据后,运用网络接口无线传输到上位机或远程终端上进行数据处理。上位机中涉及到的程序有:将YUV420P格式的数据转换成RGB格式,提取Y,U和V分量值,将YUV格式的数据文件转换成txt文件便于运用Matlab仿真,测量加工零件的距离等(涉及到单目测距方法,在以后的论文中讨论);套接口是网络通信的基础,在Linux下定义的一些套接口的函数大致如下:对于一个简单TCP/IP服务器,其基本结构如下所示: 
①建立套接字函数socket();②绑定地址和端口函数bind();③建立套接口队列函数listen();④接收连接函数accept();⑤处理连接函数read()/write();⑥关闭套接口close()。
与之对应的客户程序的基本结构如下所示:
①建立套接字函数socket();②连接服务器connect();③处理连接函数write()/read ();④关闭套接口close();
运用无线网络传回图像数据恢复的图片如图5.1,5.2和5.3所示(仅提取Y分量即灰度图,大小320X240,摄像头和黑斑距离50CM,+X代表摄像头向右移动XCM): 
 

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


6. 结束语
  本文提出了一套基于嵌入式平台(S3C2410芯片+Linux操作系统)的图像采集、无线传输和数控系统的设计和应用。在嵌入式数控系统加工零件过程中,运用图像采集模块和无线传输模块获取零件加工的过程,当前状态和精确测量。应用结果证明:系统很好的完成了图像采集和无线传输,得到的图像清晰,采集的数据可用于图像处理。特别是:平台中无线传输模块和数控制系统模块的结合实现传递信息,共享资源;使得数控领域具有分布式,移动性,微型化和智能化等特点。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

荷兰奈梅亨,2024年5月29日- ITEC推出了ADAT3 XF TwinRevolve倒装芯片贴片机,其运行速度比现有机器快五倍,每小时完成多达60,000个倒装芯片贴片。ITEC旨在通过更少的机器实现更高的生产率,...

关键字: 芯片 贴片机

5月29日消息,上周,芯片巨头英伟达公布了一季度财报,各项数据全面超越预期,受亮眼数据推动,英伟达股价首次突破每股1000美元,创历史新高。

关键字: 英伟达 GPU 芯片

业内消息,昨天英伟达正式公布了 2025 财年第一财季(截至上月 28 日)的财报数据,一财季数据和二财季指引均大幅超出预期,当日盘后股价暴涨!与此同时,英伟达也官宣了拆股计划(一拆十股)。

关键字: 英伟达 AI 芯片 H200

5月22日消息,今日凌晨,英伟达公布了截至4月28日的2025财年第一财季报告,各项数据全面超越预期。

关键字: 英伟达 GPU 芯片

5月19日消息,英特尔CEO帕特·基辛格在最新发布的2023-2024年度企业社会责任(CSR)报告中,设定了一个宏伟目标:到2030年底,全球50%的半导体将在美国和欧洲生产。

关键字: Intel 芯片 1.8nm

5月15日消息,谷歌在其2024年I/O开发者大会上宣布了一项名为“AI Overviews(AI概览)”的新搜索体验功能。

关键字: 谷歌 AI 芯片 半导体

5月15日消息,谷歌在I/O大会上发布了第六代TPU芯片Trillium,并透露能够在明年初用上英伟达最新的Blackwell架构GPU。

关键字: 谷歌 AI 芯片 半导体

《芯片与科学法案》(CHIPS)为美国芯片研究、开发、制造和劳动力发展提供了527亿美元的资助。

关键字: 美国芯片法案 芯片与科学法案 芯片

据消息源 jasonwill101 透露,高通公司目前正在重新设计骁龙 8 Gen 4 处理器,新的目标频率为 4.26GHz,这一变化主要是为了应对苹果 M4 / A18 / Pro 处理器。

关键字: 高通 骁龙 8 Gen 4 芯片

业内消息,近日美国麦肯锡公司的一份报告强调了芯片行业的劳动力挑战,在美国寻求吸引更多技术工人从事半导体制造之际,许多现有员工正在重新考虑是否要留下来。

关键字: 芯片
关闭
关闭