基于S3C2440的串口传输及界面设计
- 格式:doc
- 大小:433.50 KB
- 文档页数:16
USB设备及其驱动程序在LINUX中是很重要的一部分。
本文给出基于S3C2440的USB电路及驱动程序设计一种以ARM9微处理器S3C2440为核心的USB HID类通信接口的设计方案。
首先介绍了USB、设备驱动程序的相关原理及知识;然后结合主机在枚举期间的请求,论述了USB HID固件程序的实现过程;最后介绍了如何编写应用程序对HID类设备进行访问。
关键词:LINUX USB 设备驱动程序1.概述 (2)2. 原理介绍 (2)2.1USB简介 (2)2.1.1 主要特点 (2)2.1.2 组成 (3)2.2S3C2440的USB主机控制器 (3)2.3设备驱动程序 (4)2.3.1特点 (4)2.3.2 层次结构 (4)2.3.3 功能 (4)3. 设计过程 (5)3.1接口设计 (5)3.2固件程序设计 (5)3.3应用程序设计 (7)3.3.1 应用流程 (7)3.3.2 程序编写 (8)4. 总结 (17)参考文献 (18)基于S3C2440的USB电路及驱动程序设计1.概述USB接口作为一种高速的新型总线接口,支持即插即用设备,并能为外设提供电源且易于扩展,已成为了计算机和嵌入式系统应用的主流接口。
人机接口设备(HID)一直是Windows系统支持较完善的设备类,不仅提供了完整的USB系统软件,而且直接提供HID的设备驱动程序,只要按照HID类的规范编写设备固件程序,就能够让Windows系统自动识别设备,省去了复杂的驱动程序编写过程,这样大大降低了开发的难度。
本文给出了一种基于S3C2440的USB电路及驱动程序的设计。
2. 原理介绍2.1 USB简介USB主要用于中速和低速的外设。
USB通过PCI总线和PC机的内部系统数据线连接,实现数据的传送。
USB的网络协议中规定每个USB的系统有且仅有一个HOST。
USB2.0协议的理论速度是480Mb/s ,现在的USB3.0协议理论速度能达到4Gb/s。
南昌航空大学东软班
毕业设计任务书
I、毕业设计题目:
基于s3c2440平台的UDP网络编程的设计与实现
II、毕业设计使用的原始资料(数据)及设计技术要求:
本论文的主要研究内容是基于s3c2440平台的UDP网络编程的设计与实现,实现PC机和s3 c2440平台之间的通讯。
主要技术:
原始资料:CentOS S3C2440 QT
I I I、毕业设计工作内容及完成时间:
1. 第一阶段:论文开题阶段2013.11.1-2013.11.13 完成开题报告,确定研究题目和方向。
2. 第二阶段:需求分析阶段201
3.11.14-2013.11.22 完成项目需求分析。
3. 第三阶段:概要设计阶段2013.11.23-2013.12.04 完成项目概要设计。
4. 第四阶段:详细设计阶段2013.12.04-2013.12.20 完成项目详细设计。
5.第五阶段:中期检查2013.12.20-2013.12.30完成中期检查报告。
6. 第六阶段:代码实现及测试阶段2014.1.1-2014.2.30 完成项目编码及测试阶段。
7. 第七阶段:总结阶段2014.3.1-2014.3.7 完成科技论文和答辩PPT。
Ⅳ、主要参考资料:
1.《计算机网络》作者:雷震甲出版社:西安电子科技大学出版社
2.《mini2440开发手册》广州友善之臂计算机科技有限公司
3.《Linux环境高级编程》作者:出版社:人民邮电出版社
学院专业类班学生(签名):
日期:自年月日至年月日
指导教师(签名):。
基于ARM处理器S3C2440的无线监控系统设计无线网络技术在近一两年开始全面普及,无论是在家庭用户还是企业用户中,我们都能看到无线技术的影子。
认识无线监控,相信大家对有线监控系统比较了解,有线监控系统主要由网络摄像机、云台、视频服务器、监控终端等设备组成。
而无线监控系统所需要的设备则比较简单,它只需要无线网络摄像机、无线AP、监控终端等设备组成,如果需要远距离无线监控,还要增加户外无线网桥等设备。
在此提出一种基于嵌入式Windows CE5.O的无线视频监控系统。
解决了传统视频监控系统成本高、体积大、传输距离有限、功耗大、安装不方便等问题。
该系统的设计将为无线视频监控提供一种新的思路、方法和技术路线;在安防、远程教育、远程视频会议、医疗系统等无线视频领域具有广阔的应用前景。
Windows CE作业系统是Windows家族中最新的成员,专门设计给掌上型电脑(HPCs)所使用的电脑环境。
这样的作业系统可使完整的可携式技术与现有的Windows桌面技术整合工作。
Windows CE 被设计成针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用操作系统, Windows CE 可以通过设计一层位于内核和硬件之间代码来用设定硬件平台,这即是众所周知的硬件抽象层(HAL)(在以前解释时,这被称为 OEMC (原始设备制造)适应层,即OAL; 内核压缩层,即 KAL. 以免与微软的 Windows NT 操作系统 HAL 混淆)。
1 系统的整体硬件框图介绍基于嵌入式WinCE5.0的无线监控系统的硬件系统主要由嵌入式终端和服务器端的PC机组成。
嵌入式终端平台的微处理器选择的是基于ARM9T20内核的S3C2440,S3C2440有丰富的接口,其中摄像头接口与CMOS的摄像头相连,串口与GPRS发射模块相连;服务器端主要是1台PC机和GPRS接收模块。
整个框图如1所示。
系统首先通过S3C2440微处理器控制CMOS摄像头采集图像数据,经过压缩编码后,再通过GPRS无线发射模块将压缩后的数据发射出去,在服务器端的PC机通过GPRS接收模块接收数据,并通过相应的应用程序,对视频数据进行解码,并通过屏幕显示出来。
基于S3C2440A的SD卡文件系统的设计与实现
随着嵌入式式技术的不断发展,ARM处理器凭借其高性能、廉价、耗能低的优质特性而得到广泛应用。
文中主要针对货车动态称重系统中大量实时载重数据存取的需求,在ARM9嵌入式处理器和μC/OS-II操作系统基础上,设计实现了一种SD卡文件系统。
该系统具有实时性强、存取速率高、易维护,易移植等特点。
1 硬件接口电路设计
本系统硬件开发平台处理器为S3C2440A,是三星公司推出的16/32位RISC微处理器,ARM920T内核,主频400 MHz,最高可达533 MHz,内部具有丰富的系统外围控制器和多种通信接口。
SD卡支持SPI和SD两种通信模式,S3C2440A具有SD卡接口,支持SD总线模式,所以不再像低端的ARM处理器那样采用SPI模式,而是采用SD总线模式,这样可以大大提高SD卡的读写速度。
S3C2440A与SD卡读写器的接口电路如图1所示。
SD卡的DAT0~DAT3、CLK(时钟线)和CMD(命令线)分别连接到
S3C2440A的SDDATA0~SDDATA3、SDCLK和SDCMD引脚。
SD卡支持单线和宽总线的数据传输,宽总线数据一次传4位,数度更快,因此,此设计采用宽总线方式。
ARM-Linux s3c2440 之UART 分析(一)在分析ARM-Linux s3c2440 中UART 的时有必要先了解s3c2440A 中串口的硬件知识。
也就是本文----硬件篇:S3c2440A 串口提供三个独立的异步串行通信I/O 端口(asynchronousserial I/O ports)。
每一个串口均可以以普通中断方式或者DMA 方式进行数据收发,采用系统时钟时,最大速率为115.2kbps.如果采用外部时钟(UEXTCLK),UART 速度可以更快。
每个串口包含有2 个64-byte 的FIFO 缓存区用来发送或传输数据。
S3c2440A 串口具有可编程波特率,红外(IR)收发数据,1 或者2 位的停止位(stop),5/6/7/8 位数据宽度和奇偶校验功能(parity checking)。
每个串口由波特率产生单元,发送单元,接收单元和控制单元组成。
如下图所示,波特产生单元的时钟可以是PCLK,FCLK/n,或者UEXTCLK(外部输入的时钟)。
发送和接收单元包含有一个64-byte 的FIFOs(先入先出队列)和数据移位器。
发送数据时,数据被写进FIFO 然后拷贝到数据移位器后发送数据,最后数据被一位一位由数据发送脚(TxDn)送出。
类似的,数据在接收时,数据一位一位的由数据接收脚(RxDn)接收,然后拷贝到FIFO 缓存区。
寄存器:串口的控制寄存器有三个:UCON0 ~ UCON1 分别对应于每一个串口,用于设置UART 的工作模式,波特率,中断类型等。
状态寄存器:UTRSTAT0 ~UTRSTAT2, 用于串口工作时,接收/发送的状态指示FIFO 控制寄存器:UFCON0 ~ UFCON2, 用于对FIFO 的设置。
《工业控制计算机》2010年第23卷第5期2.4GHz无线设备的使用,免去了系统之间连线的烦恼。
一方面可以降低设备的成本,另一方面就是可以简化设备的安装。
特别是对于一些运动部件的实时测量,借助两个无线传输设备,可以将一部分测量设备做到运动部件上,另一部分安装在附近,就可以将运动部件的实时数据传输出来,供设计人员对设备实时工作的性能进行详细分析和改进。
本文着重介绍nRF24E1与S3C2440的硬件连接以及在Linux操作系统下的驱动设计。
无线设备采用基于NF2401AG芯片。
1硬件结构nFR2401A是Nordic公司的一款单片2.4GHz无线传输芯片。
该芯片由一个完全集成的频率合成器,一个功率放大器,晶体振荡器和调制器组成,输出功率和频率可以通过3线接口编程设置。
1.1nFR2401的通信协议与工作模式nFR2401之间的无线收发是以数据包的形式发送和接收的。
其数据包格式如下:其中,前缓冲是硬件自动添加,地址由用户设定。
为32~40位;循环冗余校验由内置CRC纠检错硬件电路自动添加。
可设为0、8或6位。
所有的数据总共长度为256位。
nFR2401的工作模式有配置模式、工作模式、待机模式、掉电模式四种。
模式由主控芯片通过软件设置。
芯片上电后,S3C2440通过接口将配置数据送入芯片,设置收发模式、收发频率、接收地址、发射功率、CRC校验和的长度、有效数据的长度等。
传输中,只有地址,校验和匹配的数据包才能被进一步处理,产生中断信号。
这时,S3C2440读取数据。
在同一时刻nFR2401只能处于接收或发送模式中的一种,一般以接收模式为待机状态。
1.2nFR2401与S3C2440的接口设计nFR2401与S3C2440的接口设计如图1所示。
通过将S3C2440芯片的GPD口与nFR2401连接。
S3C2440的GPD 口为多功能口,主要是LCD屏的接口。
由于系统没有显示部分,所以将该口用作了nFR2401的接口。
基于S3C2440的嵌入式多模通信手持式控制器设计张建奇,杨海科,成斐鸣(西安航天自动化股份有限公司,陕西 西安 710065)摘 要:随着手持式设备的不断普及,低成本、高性能、结构简单的嵌入式Linux已得到广泛应用。
首先,介绍了基于Qt/Embedded嵌入式系统设计的一般步骤,其次,在分析了串口和Wi-Fi通信协议的基础上,给出了基于串口和Wi-Fi两种通信方式的嵌入式控制器设计方案,并结合手持式设备的一般特点,实现了主从控制器之间的多模式数据通信,同时完成Linux操作系统的裁剪与移植并通过触摸屏实现人机交互。
最后,阐述了2440嵌入式Linux的Qtopia应用程序开发过程。
关键词:嵌入式系统;串口通信;Wi-Fi;Qt;控制器中图分类号:TN919.7,TP311.5 文献标识码:B 文章编号:1003-7241(2011)11-0039-04Design of Multi-Communication-Mode Handheld ControllerBased on S3C2440ZHANG Jian-qi, YANG Hai-ke, CHENG Fei-ming( Xi’an Aerospace Automation Co., Ltd., Xi’an 710065 China )Abstract: With the increasing popularity of handheld devices, embedded Linux with the characteristics of low cost, high perfor-mance and simple structure has been widely applied. This paper presents general steps of the design based on the Qt/Embedded system at first. Then, after the analysis of the serial ports and Wi-Fi communication protocol, provides embedded controller design scheme based on two communication modes: serial ports and Wi-Fi. Besides, along with the general characteristics of handheld devices, it realizes multimode data communications between the master controller and slave controller. At the same time, it accomplishes the clipping and transplant of the Linux operating system as well as realizes human-machine interaction through the touch screen. At last, this paper illustrates the development process of Qtopia application program which is based on 2440 Embedded Linux.Key words: embedded system; serial communication; Wi-Fi; Qt; controller收稿日期:2011-09-271 引言随着嵌入式处理器运算能力的不断增强,嵌入式应用也逐渐普及,越来越多的嵌入式设备开始采用GUI系统。
一、设计课题: 基于S3C2410的设备驱动及其界面设计
二、设计目的: 1、进一步巩固嵌入式系统的基本知识; 2、掌握嵌入式应用系统的基本结构; 3、掌握嵌入式系统开发环境建立和使用; 4、掌握嵌入式系统基本驱动、应用程序的设计调试和编译移植方法; 5、学会查阅有关专业资料及设计手册; 6、 MiniGUI界面编程。
三、设计任务及要求: 1、掌握嵌入式系统开发环境建立和使用; 2、掌握嵌入式系统基本驱动、应用程序的设计调试和编译移植方法; 3、MiniGUI在PC上的安装、移植 4、Linux基本输入输出驱动程序设计编译与移植 5、基于MiniGUI的基本输入输出应用编程编译与移植 6、编写设计说明书(方案的确定、设计环节的考虑及必要说明等)及设备的使用说明; 7、绘制有关图纸.
四、设计内容: 1、MiniGUI在X86上安装和运行 1.1、准备工作 ①建立工作目录:mkdir /minigui-free cd /minigui-free mkdir /src ②复制源文件到工作目录:cp /media/disk/src/* ./ cp /mnt/hgfs/linux/src/* /minigui-free ③解压文件:tar zxvf libminigui-1.6.10.tar.gz tar zxvf minigui-res-1.6.10.tar.gz tar zxvf mg-samples-1.6.10.tar.gz 1.2、 MiniGUI库安装 ① 进入目录:cd libminigui-1.6.10/ ② 配置:./configure 在x86上运行只需默认配置即可,配置完成后即可生成Makefile ③ 编译:make 成功后即可生成必要的库文件等。 ④ 安装:make install 在x86上安装库文件。 5. 把libminigui加入库搜索路径: 进入/etc/ld.so.conf.d建一个minigui.conf,写上/usr/local/lib 可以使用命令完成: [root@fedora7]#echo /usr/local/lib > /etc/ld.so.conf.d/minigui.conf (如果你使用的不是fedora7可能没有/etc/ld.so.conf.d这个目录,只有一个/etc/ld.so.conf,不过作用是一样的,在这个文件末尾加上/usr/local/lib) (4)最后要把系统共享库缓存刷新,将libminigui加载上,可以使用命令 [root@fedora7]#ldconfig 这个命令执行时要花十多秒,耐心等待。当然不使用刷新命令重启系统也可以。 1.3、MiniGUI资源安装 ①进入目录:cd minigui-res-1.6.10/ ②安装:make install 必要资源文件的复制安装等操作。 1.4、MiniGUI例子编译 ① 进入目录:cd mg-samples-1.6.10/ ② ./configure ③ 编译:make 编译src目录下的例子程序,用于验证MiniGUI是否安装成功。 即可在src目录下生成可执行文件 1.5、安装qvfb 使用qt的qvfb cd qvfb 1.1 ./configure make make install
apt-get install qt3-dev-tools-embedded 1.6、配置MiniGUI.cfg vi /usr/local/etc/MiniGUI.cfg 修改如下部分为 [system] # GAL engine and default options gal_engine=qvfb defaultmode=800x480-16bpp # IAL engine ial_engine=qvfb mdev=/dev/input/mice mtype=IMPS2 [fbcon] defaultmode=800x480-16bpp [qvfb] defaultmode=800x480-16bpp display=0 1.6、 运行MiniGUI例子程序 ① 打开qvfb:qvfb -width 800 -height 480 & ② 运行helloword: src/helloworld 出现此窗口说明运行成功。 1.7、问题 ①错误1: InitGUI: Can not initialize colors of window element! InitGUI failure when using /usr/local/etc/MiniGUI.cfg as cfg file. 解决方法:正确配置MiniGUI.cfg文件 ②错误2: Permission denied 解决方法:权限不够,使用root用户登录。 ③ 错误3: 编译出错未找到jpeg,png等 解决方法:安装zlib,png,jpeg库。 ④ 错误4: ⑤ 错误5: 出现符号未找到等编译错误 解决方法:make clean 后在make 2、控制面板界面编程 1.建立新的zc.c文件,在makefile.am文档里添加zc.source=zc.c 2.重新命名helloworld.c文件,将程序写进去,并在/minigui-free/mg-samples-1.6.10目录下执行./configure;再执行make命令。 ①选用对话框方式编程,结构DLGTEMPLATE用来定义对话框本身,结构CTRLDATA用来定义控件。 static DLGTEMPLATE DlgYourTaste = { WS_BORDER | WS_CAPTION, WS_EX_NONE, 0, 0, 720, 480, "Contrl", 0, 0, 8, NULL, 0 }; 分别对对话框属性进行定义。 static CTRLDATA CtrlYourTaste[] = { { "button", WS_VISIBLE | BS_DEFPUSHBUTTON | WS_TABSTOP | WS_GROUP, B1_X, B_Y, B_W, B_H, IDC_LED1, "LED1", 0 }, …………………………等等 }; 在此结构中定义控件,其中包括4个按钮用来控制LED,3个静态文本框用来显示提示消息,不允许用户更改,1个编辑框用来输入频率。部分代码省略。 ② 主函数操作:打开设备获得文件描述符,函数连接等。 led_fd=open("/dev/led",O_RDONLY); if(led_fd<0) { perror("open led error!"); exit(1); } DlgYourTaste.controls = CtrlYourTaste; DialogBoxIndirectParam (&DlgYourTaste, HWND_DESKTOP, DialogBoxProc, 0L); ③ 回调函数:包括对话框回调函数、文本框回调函数。 static void my_notif_proc (HWND hwnd, int id, int nc, DWORD add_data) { if (id == IDC_EDIT && nc == EN_CHANGE) { } } static int DialogBoxProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam) { switch (message) { case MSG_INITDIALOG: { } return 1; case MSG_PAINT: { } return 1; case MSG_TIMER: { } case MSG_COMMAND: switch (wParam) { } break; case MSG_CLOSE: break; } return DefaultDialogProc (hDlg, message, wParam, lParam); } 使用的几个消息: MSG_INITDIALOG: 建立对话框和控件之后,发送到回调函数的 MSG_PAINT: 窗口重绘时发送到窗口过程。 MSG_TIMER:timer专用。 MSG_COMMAND:传递wParam参数。 MSG_CLOSE:关闭时发送。 文本框回调函数用于频率的获取。
④自定义函数:实现绘图功能。 static void draw_circle_s(HWND hDlg,int x,int which) { HDC hdc; int color; color = ( (which==0) ? PIXEL_blue : PIXEL_red ); hdc=BeginPaint(hDlg); SetBrushColor(hdc,color); FillCircle(hdc,x,100,25); EndPaint(hDlg,hdc); }根据传递的参数绘制不同颜色的圆。 ⑤必须深刻理解消息回调机制,每一个消息产生各自的动作。 3、驱动程序设计 3.1 LED驱动 通过不同的参数实现不同LED的亮灭情况即可。 static int eduk4_led_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) {