欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于ARM 平台的RFID 系统设计与实现.docx

    • 资源ID:73267654       资源大小:21.38KB        全文页数:21页
    • 资源格式: DOCX        下载积分:16.8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16.8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于ARM 平台的RFID 系统设计与实现.docx

    基于ARM平台的RFID系统设计与实现1.引言近年来,RFID(无线射频)技术是正在兴起的一项新兴的自动识别技术。RFID利用射频方式进行非接触双向通信,从而实现对物体的识别,并将采集到的相关信息数据通过无线技术远程进行传输。相较目前广泛采用的条型码技术,RFID具有读取距离远(几米至几十米)、穿透能力强(可透过包装箱直接读取信息)、抗污染、效率高(可同时处理多个标签)、信息量大的特点。它的出现给物流和生产方面的工业应用带来了革命性的影响1。正是由于上述原因,本文提出了一种基于ARM平台的RFID系统设计与实现方案,以满足人们在嵌入式领域对RFID技术的开发与应用。2.系统介绍2.1系统硬件设计硬件系统框图:如图处理器采用现行嵌入式系统中最流行ARM系列,具体采用ATMEL公司的工业级ARM芯片。FLASH为4M,采用的芯片是AM,用于存储LINUX内核,RAMDISK和一些系统配置文件和测试数据。SDRAM为M,采用的芯片是MT48LC2M32B2TG-6。网络接口的物理层芯片采用RTL8201。同时还配有输入输出设备,即LCD显示屏和5×4键盘。电源采用稳压模块输出稳定的电压,同时设计有单键开关和充电电路等方便用户的功能2。620)this.style.width=620;"border=0>2.2系统软件设计我们采用LINUX作为系统的操作系统,给标准LINUX打上支持ARM系列的补丁包后内核便提供了对AT91RM9200的支持(我们称之ARM-LINUX),在ARM-LINUX之下,编写键盘,LCD,网卡,FLASH文件系统的驱动程序。在ARM-LINUX上编写一个小型简洁的GUI(图形界面用户接口),使程序更加模块化,便用上层程序的编写和以后系统的升级。如图是软件系统框架图。620)this.style.width=620;"border=0>3.硬件电路设计3.1单键开关电路设计单键开关设计必须考虑到以下几点:一是单键开关必须稳定,按一次键只有一次电源的通或断;二是电流问题:因为单键开关无论是关机的时候还是开机的时候都要使用电源,所以必须保证其电流足够小,减少电源的损耗。通过查找资料,我们设计了以下电路(图3):620)this.style.width=620;"border=0>该电路的工作原理是:Q8(2N7000),Q7(IRF8540)分别为N沟道和P沟道场效应管,其开启电压(GS之间的电压)分别为3V和2V,当BP17放开的时候,Q8的GS之间电压很小,Q8截止,D端电流很小,所以R11上的压降很小,Q7的GS端之间的电压很小,Q7同样截止,所以没有电压输出。BP17闭合时,R11,BP17,R21,C69形成回路,电源对C69充电,当C69的电压上升到大约3V时,Q8导通,Q8上D级电流增大,R11上的压降增大,Q7导通,由于Q7导通后的阻抗很小,所以电源类似于接通,对C69继续充电,直到达到电源电压。当再次按下BP17时,C69通过开关放电,电压降低,当降到3V以下时Q8截止,同时Q7也截至,开关关闭。此系统在Q7,Q8没有导通前,MOS管的阻抗很大,所以功耗电流很小。3.2充电电路设计充电电路可以为用户提供很大的方便。一般情况充电电路需要达到的要求是:必须保证电池充电时不过充;充电时间不能太短,但同时也要保证充电电流不能太大;有充电指示。根据上面以上要求,我们设计了以下电路620)this.style.width=620;"border=0>该电路的工作原理是:LM7812是一个稳压模块,为系统提供稳定的9V电压。LM555是一个触发器,管腿二和管腿六是触发端,管腿五是参考电压,当管腿二的电压小于管腿五和管腿六的三分之一电压小于管腿五的时候,管腿三输出0V;当管腿二的电压小于管腿五但管腿五的电压大于管腿六的三分之一电压的时候,管腿三输出VCC;当管腿二的电压大于管腿五时候,管腿三输出0V。当该系统上电但没有放充电电池的时候,满足上述条件一,所以管腿三输出0V,二极管不亮;当把待充电池接在VCC端的时候,通过C45滤波(防止干扰脉冲)的采集电压传送到管腿二和管腿六,因为电池本身有电压,所以这个时候满足上述条件二,管腿三输出9V开始充电,发光二极管变亮;当充电完毕,电池达到指定电压时,满足上述条件三,管腿三输出0V,充电结束,发光二极管熄灭。综上所述,只要参考电压足够精确,就不会造成电池过充现象。同时充电电压能够达到9V,所以调节R52完全可以在充电电流和充电时间上进行权衡。所以此电路可以达到上述要求。3.3PROTEL电路设计和电路板布线的基本流程原理图部分:建立自己的元件库。因为并不是所有的元件在PROTEL的元件库中都存在,一般要根据自己实际所用的芯片建立自己的元件库。绘制原理图。当器件比较多的时候,可以采用层次设的方法。分模块对系统进行设计,这样可以使系统更加清晰,降低错误的可能性。原理图画好后,利用其自动编号功能对器件进行编号。PCB板部分.建立自己的封装库,同元件库一样,有时候必须建立自己的封装库,在画封装的时候,要严格按照芯片公司的资料绘制。为每一个元件设置封装。用向导产生PCB文件,定义好电路板的层数和边界。利用设计同步器将器件导入到PCB中。根据具体的工艺设计好规则,如过孔大小,最小线宽。按照易于布线的原则对元件进行布局布线,在布线的时候要遵循一些原则。检查错误。4.系统软件设计4.1LINUX在AT91RM9200上的移植AT91RM9200两种启动方式:1.其内部存储器地址为0x001000000x001FFFFF的部分存在一段启动程序,如果选择这种启动模式在启动时,0x001000000x001FFFFF部分的地址被映射到0x00000000,CPU运行这段程序,这段程序会往CPU的调试串口(或者是USB口)不停的发字符“C,同时提供小于12K程序的串口(利用XMODEM协议)下载功能。2.可以直接从外部存储器启动,主要是连接在SPI(串行外部设备接口)和NCS0(CPU上的一个管腿,是EBI即外部总线接口的一部分,用于外部存储器的寻址)上的SPIDataFlash,Two-wireEEPROM和连接在NCS0上的8比特并行存储器。根据CPU的启动方式,我们可以这样设计移植过程及系统的启动方式。在系统移植阶段,我们应用启动方式1,通过其下载功能下载一个小于12K的程序(实际使用的程序为Loader,是开放源码的软件,可以在网上下载到)到SDRAM并运行,该程序可以提供大于12K的串口下载功能,用这个程序下载一个更大的程序到SDRAM中,而这个程序可以提供类似于PC机上BIOS的功能(实际使用的是U-BOOT,是开放源码的软件,可以在网上下载到),其功能主要有:LINUX系统引导,网卡驱动,TFTP下载功能,SDRAM和FLASH之间的读写功能。通过其TFTP下载功能下载内核到SDRAM,引导操作系统并进行测试。如果操作系统测试工作无误后,可以应用U-BOOT的写FLASH功能把U-BOOT和LINUX内核写到FLASH中,在应用程序开发阶段应用CPU的启动方式2,直接从FLASH启动。这种方法的优势是:在内核下载的时候,提供了TFTP下载功能,加快了速度。在应用程序开发阶段,因为内核(还有后面的RAMDISK)都是固化在FLASH中,可以省去其下载过程,同样也可以节省时间3。移植过程大致可分为以下几个步骤:配置用户环境及交叉编译环境;编译Loader和UBoot,其中要在UBoot中修改网卡驱动;3.配置Linux内核;4.制作ramdisk文件系统,并根据实际系统进行修改;5.移植Busybox;6.JFFS2文件系统的移植。在Linux内核中已经包含了MTD和JFFS2文件系统的驱动程序,但是必须针对具体的系统编写驱动程序。具体步骤如下:1)由于ROM设备和MTDBlock设备的主设备号(major)都是31,所以如果你不想把JFFS2作为根文件系统的话,必须修改他们之一的major。2)编写驱动程序:编写读,写,复制接口(这些接口将被MTD驱动程序调用,提供给上层软件的读写复制功能),定义map_info结构体,以便MTD能够从这个结构体中得到读写函数的指针,最后还要定义FLASH的分区表。根据系统的设计,我们把4M的FLASH分成四个区,第一个分区用来保存UBOOT及其参数;第二个分区用来保存LINUX内核;第三个分区用来保存RAMDISK;最后一个分区用来保存系统参数和用户数据和测试数据。3)修改LINUX的配置文件,把驱动程序加入到内核4。4.2LINUX驱动程序的编写我们研究字符型设备的驱动程序的编写,块设备驱动程序跟字符设备驱动程序的编写有一定的相似性。驱动程序加载时,内核会调用用户定义的初始化程序。用户用init_moudle(functionname)标识初始化程序,其中的functionname为编写的初始化函数的函数名。用module_exit(functionname)标识释放设备程序,在初始化函数里驱动程序必须向操作系统注册设备,以获得系统资源和操作系统正确的调用驱动程序。在Linux中这个函数是register_chrdev,在fs/devices.h中其定义为:intregister_chrdev(unsignedintmajor,constchar*name,structfile_operation*fops)。其中major是为设备向系统申请的主设备号,name驱动程序给设备定义的名字,fops是接下来要介绍的一个结构体。在卸载的时候需要告知操作系统注销注册5。下面简要介绍一下file_operation结构体中几个主要的比较常用的方法。1.ssize_t (*read) (structfile*,char*,size_t,loff_t*);用来从设备中读取数据。2.ssize_t (*write) (structfile*,constchar*,size_t,loff_t*);向设备发送数据。3.int (*ioctl) (structinode*,structfile*,unsignedint,unsignedlong);系统调用ioctl提供了一种执行设备特定的命令的方法(如格式化软盘某个磁道,这既不是读操作也不是写操作)。4.int (*open) (structinode*,structfile*);始终是对设备文件执行的第一个操作。5.int (*release) (structinode*,structfile*);当file结构被释放时,将调用这个操作。4.3RFID程序的编写本系统采用的RFID芯片是SONY生产的RC-S600,它有自己的通信协议,并支持串口或者USB口直接连接。这就大大方便了系统的开发与应用。由于本系统采用的是标准串口连接方式,因此针对应用程序的要求,我们首先要提供一套关于串口的API接口函数。1intPortOpen(pportinfo_tpportinfo);打开串口,返回文件描述符。pportinfo:待设置的串口信息。2intPortSet(intfdcom,constpportinfo_tpportinfo);设置串口。fdcom:串口文件描述符,pportinfo:待设置的串口信息。3voidPortClose(intfdcom);关闭串口。fdcom:串口文件描述符。4intPortSend(intfdcom,char*data,intdatalen);发送数据。fdcom:串口描述符,data:待发送数据,datalen:数据长度。返回实际发送长度。5intPortRecv(intfdcom,char*data,intdatalen,intbaudrate);接收数据。fdcom:串口描述符,data:接收缓冲区,datalen.:接收长度,baudrate:波特率。返回实际读入的长度。完成了串口通信的基本函数后,可以通过由串口向RFID芯片发送命令字进行控制,以下为RC-S600的Command说明:1.PollingCommand。从指定了SystemCode的卡里,取得制造ID(IDm)和制造Parameter(PMm)的指令。2.DiagnoseR/W。RC-S600系列进行自我诊断,取得诊断结果的指令。3.TurnoffRFPower。将RC-S600系列的RF输出置于Off;4.CheckFirmwareVersion。取得RC-S600系列的Software的版本号;5.ControlLED。对连接到RC-S600的LED进行On/Off;6.CommunicationThru。对卡发送1次host指定Command,根据是否从卡收到Response,向host返回该CardResponsePacket;7.AccessI/ORegister。对RC-S600系列的RF进行初期设定。经测试,本系统能对所用RFID芯片的指定命令字进行正确读写和返回。5.结论本文给出了一种基于ARM平台的RFID系统设计,现已通过实际测试。由于本系统采用的是标准接口设计,这就为以后的多功能开发平台提供了理想的硬件环境。参考文献 1胡晓娜.RFID的前景技术2021/yb2xvd3qrkd2021.org.2007.6。 2Atmel.DatasheetofAT91RM9200.技术2021/eiaio4razdi2021.2003.8。 3杜春雷.ARM体系结构与编程.北京:清华大学出版社.2003.5。 4马忠梅.AT91系列ARM核微控制器结构与开发.北京:北京航空航天大学出版社.2003.5。 5刘淼.嵌入式系统接口设计与Linux驱动程序开发.北京:北京航空航天大学出版社.2006.5。1

    注意事项

    本文(基于ARM 平台的RFID 系统设计与实现.docx)为本站会员(安***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开