




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章嵌入式LINUX开发基础知 嵌入式LINUX简 嵌入式LINUX开发平台简 嵌入式LINUX开发流 嵌入式LINUX开发环境的建 第二章基础实 熟悉LINUX开发环 A/D接口实 D/A接口实 CAN总线通讯实 RS-485通讯实 第三章图形界面应用程序设 安装与建立QT桌面运行环 建立本机QTOPIA虚拟平 第四章内核实 LINUX内核移植与编译实 第五章驱动模块实 SD卡使用实 第六章无线通讯实 GPS通讯实 GPRS通讯实 基于PCMCIA的CF卡读写和无线局域网通讯实 第七章附 常用LINUX命令的使 VI简 线通GPS一、实验目的NMEA0183ASCII接口协议格式二、实验内容语句格式。通过软件来设置GPS模块的波特率、波特率、输出语句和初始化等内容。三、预备知识四、实验设备及工具软件:PC机操作系统REDHATLINUX9.0+ +ARMLINUX开发环境五、实验原理GPSGPS(GlobalPositioningSystem-全球)是从本世纪70年始研制,历时20定位工作。GPS硬件一般由主机、天线和电源组成。GPS定位的基本原理是根据高速运动的瞬间位置作为已知的起算数据,采用空间距离后方交如图6.1.1所示:.和2、3、4)分别为1、2、3、4到之间的距离。△ti(i=1、2、3、4)分别为1、2、3、4的信号到达所经历的时间。c为GPS信号的速度(即光四个方程式中各个参数意义如下:xi、yi、zi(i=1、2、3、4)分别为1、2、3、4在t时刻的空间直角坐标可由导航电文求得。Vti(i=1、2、3、4)分别为1、2、3、4的钟的钟差,由星历提供。Vto为的。数,并由基准站实时将这一数据发送出去。用户在进行GPS观测的同时,也接收到基准站发出GPS 6.1.2GPS15PC串口的连分模式、NMEA输出间隔等设置信息。PGRME等,每秒钟定时输出,如图6.1.3所示。6.1.3GPS模块原始输出信六、程序分析1GPSvoid*show_gps_info(void*{}}}gps_parse实现void*show_gps_info(void*{}}}gps_parse实现GPRMC格式{intcharcharGPS-//判断"GPRMC"tmp GPS- =(buf[tmp+0]-'0')*10+(buf[tmp+1]-=(buf[tmp+2]-'0')*10+(buf[tmp+3]-=(buf[tmp+4]-'0')*10+(buf[tmp+5]- 年 //or #ifdefUSE_BEIJING_TIMEZONE}GPS- = }}七、实验步骤JP201/JP202GPS的地方,比如说窗台,将模块插入2410-S扩展插槽。[root@localhost[root@localhost/]#cd[root@localhost[root@localhost -c-omain.omain.c -c-ogps.ogps.carmv4l-unknown-linux-gcc-o../bin/gpsmain.o -[/mnt/yaffs]mount–tnfs3:/arm2410s/host[/mnt/yaffs]cd[/mnt/yaffs]mount–tnfs3:/arm2410s/host[/mnt/yaffs]cd/host/exp/basic/bin//挂载主 八、思考题GPRS一、实验目的二、实验内容三、预备知识四、实验设备及工具软件:PC机操作系统REDHATLINUX9.0+ +ARMLINUX开发环境五、实验原理SIM100-EGPRSARMGPRSGPSSIM100-E,是GSM/GPRS双频模块,主要为语音传输、短消息和数据业务提供无线接口。SIM100-E集成了完整的射频电路和GSM的基带处理器适合于开发一些GSM/GPRS的无线应用产品如移动PCMCIA无线MODEMSIM100-E模块为用户提供了功能完备60Pin系统连接器是SIM100-E模块与应用系统的连接接口,主要提供外部电源、RS-232串口、SIM卡接口和音频接口。SIM100-E模块使用锂电池、镍氢电池或者其他外部直流电源供电,电源电压范围为:3.3V~4.6V2A输出能力。注意SIM100-E的下列引脚:VANA为模拟输出电压,可提供2.5V的电压和50mA的电流输出,用于给音频电路提供电源。当模块上电启动并报出RDY后,用户才可以和模块进行通信,用户可以首先使用模块默认速率需要通过串口与模块进行通讯时,可以只用三个引脚TXD,RXD和GND。其他引脚悬空,建议RTS和DTR置低。本扩展板上采用MAX3232完成GPRS模块的TTL电平到RS232电平的转换,以能和ARM开发平台的RS232串口连接。主通道可以插普通机的话柄,辅助通道可以插带MIC的耳幔。示音乐只能在耳机中听到。蜂鸣器是由GPRSBUZZER引脚加驱动电路控制的。模块支持外部SIM卡,可以直接与3.0VSIM卡或者1.8VSIM卡连接。模块自动监测和适应SIM网络支持的,需要配备一个可用的SIM卡,在网络服务计费方面和普通类似。通信模块AT命令验,数据流控制采用硬件方式,停止位为1。然后可以在超级终端里输入“AT”并回车,即可看到GPRSAT”AT一般命令AT+CGMI返回生产厂商标AT+CGMI返回生产厂商标ATI的产品信 设置受话器音量级别,level0~100 AT+CMIC=<ch>,<gain>MIC增益,ch=0MIC,1为辅助MIC;gain0~15呼叫控制命令>为 本命令(略短消息命令。 AT+CMGS=xxxxxxxx‘CR’Text‘CTRL+Z’发送短消息。xxxxxxxx为对方 后按CTRL+Z 。CTRL+Z的ASCII码是26。AT+CMGD=<index>删除短消息。index为所要删 命令(本实验仅实现基本功能, 命令请参考手册六、程序分析<gprscontrol give<gprscontrol givearespondaholdasendamsg[**]help printf("\nyouselecttogvieacall,pleaseinputgprs_call(cmd,gprs_call(cmd, voidgprs_call(char*number,voidgprs_call(char*number,int{tty_write("atd",strlen("atd"));//发送拨打命令ATD,详见AT命tty_write(number,num); tty_write(";\r",strlen(";\r")); }七、实验步骤块插入2410-S扩展插槽。[root@localhost/]#[root@localhost/]#cd[root@localhost -c-omain.omain.c -c-otty.otty.c -c-ogprs.ogprs.carmv4l-unknown-linux- -c-o .o armv4l-unknown-linux-gcc-o../bin/gprsmain.otty.ogprs.okeys .o../keyboard/keyboard.o../keyboard/get_key.o [/mnt/yaffs]mount–tnfs3:/arm2410s[/mnt/yaffs]mount–tnfs3:/arm2410s/host[/mnt/yaffs]cd/host/exp/basic/bin//挂载主<gprscontrolgivearespondaholdasendamsg> 5八、思考题PCMCIACF卡读写和无线局域网通一、实验目的二、实验内容三、预备知识四、实验设备及工具软件:PC机操作系统RedHatLinux9.0+ +ARMLinux开发环境。五、实验原理 上用途最广的扩展标准之一。采用PCMCIAPCdriverServicesClientCards的读写和操作。制器和不同系统平台的支持,从而了PCMCIA插槽和硬件资源配置的差异。使用不同PCMCIA控制器的系统(TCIC-2、ini82365、StrongArm、Mx1等)要有各自的SocketDriver层软件,从而使PCCard的驱动程序与PCMCIA插槽无关。CardServicePCMCIAPCCardPCCardSocket的标准APICardService的实现采用客户机/服务器(Client/Server)结构,可同时对多个CardClientCardClient驱动程序。由此可知,只有SocketDriver层是与硬件相关的。所以,在不同平台之间移植PCMCIA子系统的工作就是为s3c2410SocketDriver。六、实验步骤根据PCMCIA标准,SocketDriver层是通过若干API函数为CardService提供服务的,编 int(*init)(unsignedintint(*suspend)(unsignedintint(*register_callback)(unsignedintsock,void(*handler)(void*,unsignedint),void*info);int(*inquire_socket)(unsignedintsock,socket_cap_t*cap);int(*get_status)(unsignedintsock,u_intint(*get_socket)(unsignedintsock,socket_state_t*state);int(*get_io_map)(unsignedintsock,structpccard_io_map*io);intint(*init)(unsignedintint(*suspend)(unsignedintint(*register_callback)(unsignedintsock,void(*handler)(void*,unsignedint),void*info);int(*inquire_socket)(unsignedintsock,socket_cap_t*cap);int(*get_status)(unsignedintsock,u_intint(*get_socket)(unsignedintsock,socket_state_t*state);int(*get_io_map)(unsignedintsock,structpccard_io_map*io);int(*set_io_map)(unsignedintsock,structpccard_io_mapint(*get_mem_map)(unsignedintsock,structpccard_mem_map*mem);int(*set_mem_map)(unsignedintsock,structpccard_mem_map*mem);void(*proc_setup)(unsignedintsock,structproc_dir_entry*base);{s3c2410_pcmcia_init,#ifdefCONFIG_PROC_FSprintk(KERN_ERRprintk(KERN_ERR"Unabletoregistersocketservice在UP-NETARM2410-S平台中,PCMCIA采用模块的方式调用。在kernel/drivers/pcmica s3c2410_cpld2.cSocketServicescs.c:CardService接口;cistpl.c:CISPCMCIA卡信息接口解析;rsrc_mgr.c:系统资源管理模块(中断和空间内容)bulkmem.c:make在kernel make在驱动 PCMCIA子系统应用程序在Linux--target=/home/samba/mizilinux/usr/pcmcia-cs- --moddir=/home/samba/mizilinux/usr/pcmcia-cs- --arch=arm--target=/home/samba/mizilinux/usr/pcmcia-cs- --moddir=/home/samba/mizilinux/usr/pcmcia-cs- --arch=arm--ucc=armv4l-unknown-linux-gcc--kcc=armv4l-unknown-linux-该实现如下的功能:设定目标系统的内核内容,设定生成文件(cardmgr等工具的路径)设些典型模块的PCMCIA控制器的驱动程序如:i82365、tcic,如果在内核的编译的编译选项中选择编译PCMCIA模块,那么此处就自动不选。使用内核和应用程序软件包都可以编译典型的PCMCIA控制器驱动,推荐的方式是使用内核自带的PCMCIA模块驱动程序。软件包进行编译成功之后,在pcmcia-cs-3.2.8/tar_install/root/etc生成PCMCIA的系统配置 和rc.pcmcia文件,拷贝之linux的根文件系统相应的位置上,重新生成根文件系统。1、加载CFinsmodpcmcia_core.oinsmodds.oinsmodide-cs.oinsmodhermes.oinsmodinsmod[/mnt/yaffs/pcmcia-insmodpcmcia_core.oinsmodds.oinsmodide-cs.oinsmodhermes.oinsmodinsmod[/mnt/yaffs/pcmcia- Usedby 0(unused)00[orinoco_cside-00[orinoco_cside-10[orinoco_cside-csdsi2c-0driver->attach=c48a0090mountmountCF就会挂载到 2、无限网卡的加载[/mnt/yaffs/pcmcia-mod]cardmgr[65]:[/mnt/yaffs/pcmcia-mod]cardmgr[65]:executing:'./networkstopeth12>&1'cardmgr[65]:+./network:32:sed:notfoundcardmgr[65]:+grep:/etc/resolv.conf:Nosuchfileordirectorycardmgr[65]:executing:'modprobe-rorinoco_cs2>&1'cardmgr[65]:+modprobe:couldnotparsemodules.depcardmgr[65]:cardmgr[65]:modprobeexitedwithstatusifconfigeth1ifconfigeth1七、思考题一、实验目的二、实验内容三、预备知识知识。Linux内核的编译。四、实验设备及工具软件:PC机操作系统REDHATLINUX9.0+ +ARMLINUX开发环境五、实验原理线的波长较短,对6.4.1电磁波普及红外光所处位为了使各种设备能够通过一个红外接口进行通信,红外数据协议组织(InfraredDataAssociationIRDA)发布了一个关于红外的统一的软硬件规范,也就是红外数据通讯标准。结构,其结构形成一个栈,如图6.4.2所示。6.4.2红外通讯协议 IrDA1.03/16BIT1.63μsIrDA1.0简SIR,SIR115.2Kbps6.4.3说明了红外模式的执行过程。6.4.3红外功能框6.4.4、6.4.5、6.4.6UART的数据帧格式和进行脉冲调制后IRUART中的“1”,红外脉冲调制中有脉冲代6.4.4调制前UART的数据帧格6.4.5红外发送模式帧6.4.6红外接收模式帧功率:高的功率表示在中的大电流,有好的信噪比。然而,IR-LED(红外灯)不可能在全部的时实验中用的是3/16的脉冲宽度信号,1/4脉冲宽度的信号用在快速红外通信中。3456781-2RS4852-34-5
11234512345 6.4.7试验原理6.4.1TFDU4100的管脚定七、实验步骤mkdirirdamkdir核代码至/arm2410s/irda cd/arm2410s/kernel-cd/arm2410s/kernel- 6.4.8红外配置菜6.4.9配置红外设备模makezImagemakeINSTALL_MOD_PATH=/arm2410s/irda/irda_modules\//模块的安装 /arm2410s/irda/kernel- 下编译完成后,会在/arm2410s/irda/irda_modules出现 。 具有如下的结构 编译生成的2.4.18-rmk7-pxa1 []mount[]mount–tnfs192.168.0.xxx:/arm2410scd //如前步操作正确可以看到zImage[/mnt/yaffs]depmod[/mnt/yaffs]depmod[/mnt/yaffs/irda]initirdainitirdaUsing/lib/modules/2.4.18-rmk7-pxa1/kernel/drivers/net/irda/irtty.oUsing/lib/modules/2.4.18-rmk7-pxa1/ker Mprotocol(DagIrDA:Registereddeviceirda007:52:15.810088xid:cmd7774df90>ffffffffS=6s=0(14)07:52:15.900064xid:cmd7774df90>ffffffffS=6s=1(14)07:52:15.990050xid:cmd7774df90>ffffffffS=6s=2(14)07:52:16.080046xid:cmd7774df90>ffffffffS=6s=3(14)07:52:16.170062xid:cmd7774df90>ffffffffS=6s=4(14)07:52:16.260062xid:cmd7774df90>ffffffffS=6s=5(14)07:52:16.350050xid:cmd7774df90>ffffffffS=6s=*Linuxhint=0400[Computer]注意:检查硬件的跳线。在实验平台扩展插槽的左上的位置有两排跳线。进行红外实验时,要保证两个注意:检查硬件的跳线。在实验平台扩展插槽的左上的位置有两排跳线。进行红外实验时,要保证两个跳线是插在4-5的位置上的。的IR650红外模块。中的IR650驱动位置即可。15:58:20.070085xid:cmd3bf277d4>ffffffffS=6s=015:58:20.16006615:58:20.160066xid:cmd3bf277d4>ffffffffS=6s=115:58:20.240032xid:rsp3bf277d4<001ab6feS=6s=1BINhint=8425[Computer15:58:20.250083xid:cmd3bf277d4>ffffffffS=6s=2(14)15:58:20.340049xid:cmd3bf277d4>ffffffffS=6s=315:58:20.430043xid:cmd3bf277d4>ffffffffS=6s=4(14)15:58:20.520043xid:cmd3bf277d4>ffffffffS=6s=5MIrOBEX]15:58:20.610049xid:cmd3bf277d4>ffffffffS=6s=*Linuxhint=0400[Computer](21)15:58:22.110029xid:cmdffffffff<001ab6feS=6s=0(14)15:58:22.110153xidrsp3bf277d4>001ab6feS=6s=0Linuxhint=0400[Computer](21)15:58:32.610050xid:cmd3bf277d4>ffffffffS=6s=*Linuxhint=0400[Computer]15:58:35.070081xid:cmd3bf277d4>ffffffffS=6s=015:58:35.150031xid:rsp3bf277d4<001ab6feS=6s=0BINhint=8425[15:58:35.160071xid:cmd3bf277d4>ffffffffS=6s=1MIrOBEX] 图6.4.10[/mnt/yaffs/irda]./irda.shSendfiles[/mnt/yaffs/irda]./irda.shSendfilestoandreceivefilesfromwin95Waitingforfiles 注意:红外通信使用串口的工作方式,通信速率较低。所以,在选择发送文件时,注意发送文件的大小,以免等待时间过长。6.4.11发送文注意:红外通信使用串口的工作方式,通信速率较低。所以,在选择发送文件时,注意发送文件的大小,以免等待时间过长。八、思考题一.实验目的二.实验内容三.预备知识四.实验设备及工具 +ARMLINUX开发环五.实验原理 信与信 可以有种距离等级,Class1为100m左右Class2约为10m 范围内100m中的信息可以在电视机上显示出来,也可以将其中信息数据进行转换,以便在PC个人电机上,另一张插人PC个人电脑。这样,用户就成功实现了与因特网的无线联网。须申请证;4、可同时支持数据、音频、信号;5、采用FM调制方式,降低设备的复杂性。时隙。同时,蓝牙技术支持1个异步数据通道或3个并发的同步话音通道,或1个同时传送异步数据和同步话音的通道。每一个话音通道支持64kb/s的同步话音;异步通道支持最大速 6.5.1蓝牙体系结构图2161SIG(SpecialInterestGroup)组织,并正在蓝牙体系结构包括3部分,各部分的构成见图1。下面就硬件、软件、路由机制3方面作、硬件链路管理协议(LMP逻辑链路控制与应用协议(L2CAP 在蓝牙的基带上仿真RS-232的功能,实现设备串行通信。例如,在拨号网络中,主机将AT命令发送到调制解调器,再传送到局域网,建立连接后,应用程序就可以通过M址,利用链路管理所提供的进程在物理层建立连接。一旦建立了服务发现协议,在主从设备之间的物理层连接上就建立了一条LZCAP点对点通信层。PC机之间的互连,PC机与各种外设或智能设备的互联和共享等;2、利用蓝牙设备无线单位内部局域网以及Internet;3、通过一定的路由机制实现办公网络内部的各个匹克用于办公网络内部的蓝牙移动终端通过无线方式局域网以及Internet;、定位办公网络内①唯一地标识办公网络内部没有IP地址的蓝牙移动终端,比如蓝牙等。络内部移动终端的无线上网以及网络、资源的共享。各个功能模块关系如图6.5.2所示。
nereTCP/IP协MTIPM-BG–T为M-BG-M_MT(为主移动终端)-MT。采用牙术也使每个据终端互用1台可照的算登等队,依执。BlueZ是LinuxBluetooth栈,由主机控制接口(HostControlInterface,HCI)层、L2CAP、SCO音频层、其他Bluetooth服务、用户空间进程以及配置工具组成。Bluetooth规范支持针对BluetoothHCI数据分组的UART(通用异步/传送器和USB传输机制。BlueZ(drivers/Bluetooth/)都支持。BlueZBNEP(Bluetooth封装协议BluetoothTCP/IPBluetoothBNEP使用register_netdev将自己作为以太网设备到LinuxWLAN描述的netif_rx来填充sk_buffs并将其发送到协议栈。BlueZM(n 提供Bluetooth上的串行仿真,这使得串行端口应用程序(如)和协议(如点对点协议(PPP)不加更改地在Bluetooth上运行。M模块和用户模式dund进程实现了Bluetooth拨号网BluetoothUSBBluetoothUSB适配器拥有一个BluetoothCSR组,并使用USB传输器来传输HCI数据分组。因此,LinuxUSBBlueZUSBBlueZ层。现在,您将了解到三层之间如何交互以使Linux网络应用程序在这个设备上运行。且都包含一个向主机控制器和单个设备的设备驱动程序提供服务的层。USB主机控制器遵循两个标准之一:UHCI(通用主机控制器接口)OHCI(开放式主机控制器接口PCMCIA,单个USB设备的Linux设备驱动程序不依赖于主机控制器。经由USB设备传输的数据分为四种类型USB设备插入时,主机控制器使用控制管道来枚举它并给它分配设备地址(1127。主机控制器设备驱动程序的设备描述符包含关于设备的信息,例如classsubclass和protocolLinux的usbcoreUSB主机控制器和USBUSB设备驱动程序可以使用的函数和数据结构。USB驱动程序利用usbcore及自己的class/subclass/protocol信息(请参阅内核include/linux/usb.h中的structusb_driver)了两个点:probe和disconnect。当相应的USB设备被附加时,usbcore用枚举期间从设备配置描述符中的class信息来匹配已的class信息,并将设备与相应的驱动程序绑定。这个使用一种叫做USBRequestBlock或URB(在include/linux/usb.h中定义)的数据结构,来异步地管理主机和设备之间的数据传输。设备驱动程序使或isochronousBluetoothUSB设备而言,HCIControl管道传输,HCIInterrupt管道,AsynchronousACL)数据使用Bulk管道,而Synchronous(SCO)音频数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论