基于ARM的嵌入式RIFD读写器设计(精选8篇)
基于ARM的嵌入式RIFD读写器设计
类别:汽车电子
摘要:RFID(Radio Frequency Identification)系统是高效的信息识别、采集系统。本文选用射频芯片S6700,控制模块用的是S3C44B0X作为微处理器,从硬件电路的设计和软件设计两个方面来阐述了嵌入式的RFID读写器的设计方案。
引言
RFID 利用了电磁波空间耦合、传播进行通信,以达到自动识别被标识对象,获取对象信息的目的。同其他一些识别技术相比,射频识别技术具有高效快捷、非接触、无污染、识别率高等突出优点。识别过程无需人工干预,可在恶劣环境下工作,能够应用到很多行业。
1.RIFD 读写器的硬件总体设计
图 1 读写器的硬件总体设计
RFID 系统主要由射频卡、读写器以及计算机系统组成。系统的工作原理如下:读写器通过天线发送出 13.56MHz 的射频信号,当射频卡进入读写器工作场时,天线产生感应电流,从而射频卡获得能量被激活并向读写器发送出自身编码等信息,读写器接收到来自射频卡的载波信号,对接收的信号进行解调和解码后发送至 PC 机进行处理,PC 机根据逻辑运算判断该射频卡的合法性,针对不同的设定做出相应的处理和控制,发出指令信号,射频卡的数据解调部分从接收到的射频脉冲中解调出数据并送到控制逻辑,控制逻辑接受指令完成存储、发送数据或其他操作。
2.硬件选型
在整个系统中,RFID 收发模块的功能是当接收到来自射频卡的载波信号时,对该信号进行解调和解码,并且将信息进行编码和调制后发送到射频卡中,要实现上述功能就需要一款内部封装有发送调制器和接收调制器的射频芯片,选用了射频芯片 S6700。S6700 芯片的时序是通过控制产生的,因此选用了单片机P89C58,利用它的 I/O 口进行控制。因为系统中使用的射频卡是疏耦合 IC卡,所以它与 S6700 芯片之间的协议标准采用了 ISO 15693,C 语言进行编程。
3.RFID 收发模块硬件电路设计
RFID 收发模块的主芯片是 TI 公司的射频芯片 S6700,该芯片的通信接口主要使用三条线:SCLOCK、DIN 和 DOUT。除了通信线外,还有一条 M_ERR 线,用来表征通信是否正常;应用电路如图2 所示:
图 2 RFID 收发模块硬件电路
S6700 的 SCLOCK、DIN、DOUT 分别由 P89C58 的 P1.3、P1.5 和 P1.6 进行控制,由于单片机 P89C52 应用比较广泛。R2 为调制深度选择电阻,当 R2 为 12 欧姆时,调制深度为 10%;当 R2 为 18 欧姆时,调制深度为 20%。SCLOCK 为双向时钟线,分别由单片机 P89C58 和 S6700芯片在不同的情况下进行控制:发送数据时由 P89C58 控制,接收数据时由 S6700 控制。在收发数据时,每个数据位在 SCLOCK 的上升沿被锁存,当 SCLOCK 为高时,数据位必须固定且保持不变,只有当 SCLOCK 为低时,传送的数据才能被改变;DIN 为数据输入线,S6700 芯片通过该线接收来自 P89C58 的命令和数据;DOUT 为数据输出线,S6700 芯片通过该线将回应数据发送给P89C58,同时该线还可用于监测S6700 芯片内部数据缓冲区的情况。M_ERR 线用来表征在同时读多张卡时数据的冲突情况。该线由于内部下拉,平时为低电平,一旦发生多卡冲突,此线会升为高电平。在每一次通信过程中,远端控制器必须通过发送命令来实现任务,典型命令格式为:起始位 S1、位命令字、传输数据和结束位ES1。
4.嵌入式控制模块硬件电路设计
S3C44B0X 微处理器是低功耗的,采用了应用于实时环境的 ARM7TDMI 32 位核,所以选为控制模块的主芯片,负责完成 PC 机和 RFID 读写器之间数据的传送和控制。
4.1 晶振电路
晶振电路用于向 CPU 及其他电路提供工作时钟。S3C44B0X 芯片通过管脚OM[3:2]确定选择何种时钟源,在本系统中,将两个管脚下拉,选择晶体时钟模式,选用该模式时,外部采用 10MHz的晶振,可以利用公式设计出各种所需的输出频率,也就是说时钟频率可以通过软件进行设定,公式如下:
Fpllo=(m×Fin)⁄(p×2s)其中设置 m=0x48,p=0x03,s=0x02,这样就可以得到 40MHz 的输出频率,满足系统的要求。
4.2 电源电路
在该系统中,需要使用 2.5V 和 3.3V 的直流稳压电源,其中 S3C44B0X 的内核需 2.5V 电源,S3C44B0X 的 I/O 口和其它部分电路需要 3.3V 电源。为简化系统电源电路的设计,要求整个系统的输入电压为高质量的 5V 的直流稳压电源,这样就需要用 DC-DC 转换器来完成
5V~2.5V、5V~3.3V 的转换,在该系统电路中选用了 BayLinear 公司的 B1117 电压转换芯片系列:B1117-2.5和B1117-3.3,器件输出电流为 1.0A。系统电源电路如图4 所示。
图 3 系统电源电路图
4.3 SDRAM 接口电路
在本系统中,采用了 HY57V641620 SDRAM 芯片,存储容量为 4 组×16M 位(8M 字节),工作电压为 3.3V,支持自动刷新和自刷新,16 位数据宽度。该芯片是通过行、列地址来定义存储器地址空间的,A11-A0 是列地址,A7-A0 是行地址,芯片管脚 BA0、BA1 用于片内 4 个存储器组的选择,将它与 ADDR21 和ADDR22 相连,利用地址高端进行相应的选择。
在本系统中,采用该 JTAG 接口对程序进行调试和下载。标准的 JTAG 接口是 4 线:TMS、TCK、TDI、TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。读写器的软件设计
根据 RFID 读写器的需要,移植了UC/OS-Ⅱ。嵌入式系统通信程序循环发送命令,检测是否有卡待读,如果接收到从 RFID 模块传来的卡号信息,则将卡号从信息中提取出来发送至 PC 机上的应用程序,由应用程序对它进行辨识。无论是与 RFID 模块的通信还是与 PC 机的通信,都采用了串口通信方式,所以首先应对串口进行设置。
当嵌入式控制程序向 RFID 模块发送完读卡的相关命令后,就需要等待接收传回的卡号数据信息,由于系统串口采用的是查询方式,一旦发送端存在数据遗失,一直未能有数据传送回来,则程序将进入死循环,所以在程序中设计了自动终止功能。在系统设计中该部分子内容只接收来自 RFID模块的数据,故只考虑串口2。
读卡程序如下:
char recv_rfid(){ char lm;int m,l;if(whichUart==1)/⁄串口 2,接收从 RFID 模块传来的数据
{ wh: for(;(!(rUTRSTAT1 & 0x1));){ m=m+1;/⁄等待的同时对变量 m 计数
if(m==500)/⁄判断 m 是否已累计到 500 还未接收到有效数据
{err_flag=1;/⁄若是,则将标志 err_flag 置 1 goto wh1;/⁄跳转到标记为 wh1 的程序处
}} lm=RdURXH1();/⁄若接收到有效数据,则将串口数据赋给变量 lm return(lm);/⁄返回 lm 的值
} wh1: l=0;/⁄标记 wh1 处程序,实为跳出子程序
} 写卡的过程只需要将从应用程序处获取持卡人的相关信息然后发送至RFID 收发模块,由 RFID模块写入射频卡中,因为要验证写入信息是否正确,所以该程序还需要实现读取射频卡中的信息并返回给应用程序,由应用程序来判断写入信息的正误。持卡人的相关信息包括姓名、性别、年龄、工作单位、身份证号、发卡日期和发卡时间。结束语
可信计算是近年来信息安全领域中的被广泛关注的一个概念,现在人们提出的可信计算一般的基本思路是:首先,在计算机系统中建立唯一的物理安全信任根部件,之后可以根据该信任根建立一条认证和信任链,进行逐级认证,逐级信任,从而可以把信任关系推广到整个计算机系统[1]。TCG(Trusted Computing Group)是制定可信计算平台标准的工业组织,其前身是1999年由Compaq、HP、IBM、Intel和Microsoft牵头组织的TCPA(Trusted Computing Platform Alliance),组织的目标是推动在计算和通信系统中使用基于硬件安全模块支持下的可信计算平台,以提高整体的安全性;目前拥有成员190家,大部分是全球各大洲的计算机主力厂商。TCG制定了TPM(Trusted Platform Moude)的标准,现在的大多数安全芯片都是基于此规范制造的,而且因为其硬件安全防护的优越性,正逐渐成为计算机系统的标准配置。
1 可信计算原理
可信计算平台是在计算系统中实现可信计算的核心部分,对整个系统的安全可信提供支撑服务。可信计算密码支撑平台是可信计算平台的重要组成部分,提供数字签名、消息加密、身份认证、内部资源的授权访问、直接匿名访问机制、信任链的建立和完整性测量、证书和密钥管理等服务,为平台的身份可信性、完整性和数据保密性提供密码支持[2]。可信计算平台的主要部分可以分为两个部分——可信计算模块TCM和可信软件栈(Trusted Software Stack,TSS),其功能架构如图1所示。
其中,TCM的通常实现为可信计算平台中的硬件部分,为可信计算平台提供密码运算功能,一般拥有受硬件保护的存储空间,TCM一般位于计算机系统的最底层,在加电的时候与整个计算机系统一起启动。TSS是可信计算平台内部的安全服务组件,为整个可信计算平台外部提供访问TPM的API软件接口。
2 系统设计
当前嵌入式系统上可信计算的相关研究成果主要有以下这些:
(1)ARM公司的Trust Zone技术:属于系统范围的安全方法,针对高性能计算平台上的大量应用,包括安全支付、数字版权管理(DRM)和基于Web的服务。Trust Zone技术与CortexTM-A处理器紧密集成,并通过AMBAR AXITM总线和特定Trust Zone系统IP块在系统中进行扩展。
(2)TMP(trusted mobile platform):可信计算组织TCG于2007年6月正式确定了可信移动平台TMP(trusted mobile platform)的规范,主要目的是为适应移动设备特点,在移动平台(手机、PDA等设备)上构建可信计算架构,为高端的移动设备提供安全保证[3]。
2.1 ARM Trust Zone技术
Trust Zone技术的主要目标是支持用户构建可编程环境,以保护信息的机密性和完整性遭受到特定攻击。如图2所示,ARM采用了以下方式确保系统安全:使用硬件的方法隔离So C硬件和软件资源,使它们分别独立位于两个不同的区域(用于安全子系统的安全区域以及用于存储其他所有内容的普通区域)中。在支持Trust Zone的AMBA3 AXITM总线中,处理器的硬件逻辑可使普通区域的资源无法访问任何位于安全区域资源,借此在这两个区域之间建立一个强大的安全边界。将敏感资源放入安全区域以及在安全处理器内核中运行核心软件,可大大减少整个系统中潜在的攻击,甚至包括那些难以察觉和防护的攻击(例如通过在硬件中隔离安全敏感的外设———手机键盘或触摸屏,避免输入的密码泄露)。
另外,在一些ARM处理器内核中Trust Zone硬件架构已实现了额外的扩展,单个物理处理器内核能够以时间片的方式安全有效地同时从普通区域和安全区域执行代码。这样,便无需使用专用安全处理器内核,从而节省了芯片面积和功耗,并且允许高性能安全软件与普通区域操作环境一起运行。
使用此安全架构,在普通区域和安全区域进行切换时,ARM使用了监视模式的方法。物理处理器中任何从普通区域进入监视模式的机制都会被控制,并且这些机制始终被视为监视模式软件的中断或异常。对要监视的内容可由安全监视调用SMC指令进行触发,或由硬件异常机制直接触发。也可对IRQ、FIQ、外部数据中断和外部预取中止异常进行配置,以便当特定条件满足时,处理器自动切换到监视模式。
2.2 TPM可信平台模块
可信平台中有一个用于密码运算的可信平台模块TPM(trusted platformmodule),它是整个系统的可信根,是信任链的源头,也是整个可信机制的核心。TPM实际上是一个含有密码运算部件和存储部件的小型片上系统,具备专用的运算处理器、随机数产生器、独立的内存空间、永久性存储空间和独立的总线输入输出系统[4]。使用符合标准规定的密码算法,对外提供非对称密钥生成运算、非对称算法加解密运算、杂凑函数运算、数字签名运算和随机数产生运算[5]。TCG规范中定义的TPM组成结构如图3所示。可信嵌入式系统引入了TPM,由TPM芯片控制完成嵌入式可信计算的核心算法,再由安全软件调用TPM计算出的结果来判断相应的系统可信度,控制嵌入式系统从一开始的上电启动到运行的全过程。
2.3 基于Trust Zone及TPM的可信嵌入式系统设计
Trust Zone技术集成于ARM芯片内,具成低、面积小、可编程等优点,但由于其普通区域和安全区域是否可以安全切换取决于其上运行的操作系统安全性,所以无法满足高强可信环境;而基于TPM构建的可信计算机系统,从一开机上电就可以对所有的资源进行信任检测,从而保证了整个系统的安全,但其安全可信的程度很大程度上决定于TPM芯片的强壮度和可靠性。两种技术的特点可以在构建可信系统时同时采用,使用时可以相互补益,从而建立一个强大的安全可信计算机系统。设计的可信嵌入式系统结构如图4所示。
如图4所示,设计的可信嵌入式系统采用了支持Trust Zone技术的ARM芯片作为CPU,并挂接了FPGA,作为控制除RAM和显示设备外其他外围设备的控制器。这样做的优点是:(1)系统可以根据具体的需求,进行灵活的功能扩展,对未来系统的改动带来便利。(2)可以在FPGA构建处理模块,针对复杂的运算设计固定的电路,加速数据的处理,同时可以减轻CPU的处理压力,提升系统性能。(3)针对外设对CPU提供统一的设备接口,屏蔽各种外设的物理差异,更方便地进行编程。(4)增大处理带宽,FPGA可以缓存各个设备的数据,为CPU计算处理提供物理支持并可以动态调节。
TPM模块与Boot ROM连接至FPGA,当系统加电时随Bott ROM同时开始工作,并对启动的第一段程序进行哈希校验,对比TPM的哈希值与得到的值,如果一致则信任;否则引起异常。接着,会验证第二阶段的引导程序,直至到操作系统安全启动。当操作系统启动后,运行的应用程序的安全由Trust Zone和TPM共同确保;当应用程序刚刚从存储中取出时,TPM即要对其进行信任校验,通过则交由Trust Zone进行处理,进入普通区域运行,如果需要切换到安全区域则需要进行安全检查通过后才能顺利运行。
3 结语
随着云计算、物联网等信息技术的兴起,嵌入式系统必将更加广泛地应用于消费电子、网络通信、政府办公、工业控制、军队国防等领域。针对信息敏感的应用,设计可以安全可信运行的嵌入式系统已经是当前嵌入式系统发展迫切需求解决的问题。就当前的嵌入式系统结构,设计了一种高可信、可扩展、应用灵活的可信嵌入式系统,为可信嵌入式系统的构建提供一种思路。
参考文献
[1]Joe Grand.Practical Secure Hardware Design for Embedded Sy-stems[C]Proceedings of Embedded System Conference.2004:124-126.
[2]沈昌祥,张焕国,冯登国,等.信息安全综述[J].中国科学E辑:信息科学,2007,37(2):129-150.
[3]林小茶,李光.基于嵌入式技术的信任根研究[J].计算机工程与应用,2007,43(16):165-168.
[4]TPM_Main_part1_Design_Principles_Specification_Version_1.2[EB/OL].https://www.trustedcomputinggroup.org/Specs/TPM/,2008.
关键词:ARM;嵌入式;系统;硬件设计
随着互联网技术的迅猛发展,对各个产业都产生了深远的影响。尤其是对现代化通讯技术的影响更是深远。嵌入式系统在信息技术处理得到了很好的应用,并在通信技术上取得了长足发展,嵌入式系统越来越引起业内的关注,使专家学者对其进行深入的研究,它的重要性慢慢的让更多的人所认识,并逐渐引起关注。在今后一段时间内,其功能会越来越丰富,实用性也会越来越强,最终发展成为以数字为导向的技术,数据处理、数据管理、数据等系统。嵌入式系统随着计算机技术的发展而演变出来的,它的核心是围绕计算机技术基础展开的,应用才是最核心的内容,系统的硬件有可裁剪性,系统的软件也有其可裁剪性,可以满足专用计算机系统的要求,进而其功能、成本、功能以及体积等方面的要求也就自然而然的得到了满足。嵌入式系统最突出的优势是什么呢?这也是很多研究者深入挖掘的一个问题,它的人性化设计使其最大的特点,一切都是从用户的现实需求出发,裁剪对系统的硬件及软件发挥着重要的作用,在满足条件的基础上,有效的提升集成度,对今后发展系统的智能化、网络化有着很大的意义。
一、嵌入式系统原理综述
基于ARM视域下的嵌入式系统有其自身的独特性,它以计算机系统为依托,开发相应的特色的功能,满足市场的需要,嵌入式系统的构成是有很多的因素构成的,它基本上包含软硬件两个部分,硬件包括硬件系统设备平台,软件包括ARM操作系统以及嵌入式的应用软件。嵌入式的系统不是一个孤立硬件或软件的系统,它能够集硬件与软件为一体,并且在双方互不干扰的情况下独立完成工作的效果,与其他系统的相关的硬件系统尤其相似性,如硬件系统中有的设备平台,这与一般的计算机处理器有着同样的功效,储存器和处理器这两种输入和输出的设备在ARM系统与一般的计算机系统都是有的,这些共同构成了嵌入式系统的基本硬件。
基于ARM的嵌入式系统在实际应用中与一般的计算机系统也有其不同之处,它的容量和信息储存处理非常的简单,摒弃了之前繁杂的计算,最后也不能有效的进行输出。嵌入式的操作系统是先进的系统,在系统信息处理中占据主体地位,嵌入式系统的信息处理的主要方向是什么,功能调整控制的主要方向是什么,嵌入式系统操纵进入了人们的眼帘,并能展示出来其有效性。嵌入式的操作系统是以嵌入式的系统软件为核心,并进行相应的处理,最终实现嵌入式系统应用,在一定程度上完善嵌入式系统的开发。
它有着以下两个主要特点。(1)系统精简。嵌入式的系统融合了先进的计算机技术,并吸取了电子行业的经验,并将其现成的技术贯穿到了该系统里面,实现了扬长避短的效果,进而实现了前所未有的高效高能的集成系统,这种系统在现有的市场中也形成了一个良性的发展模式,并采取兼收并包的措施,积极的建立起在相应的行业中,不断吸收先进的经验来完善自身。(2)针对性强。定向设计是最近这几年流行的词汇,这个词在该领域也是有其深远的意义。嵌入式系统其实就是定向设计,在使用上更具有针对性,也突出了其专业性。嵌入式系统以客户的需求进行相应的定向设计与开发,当客户的需求满足的时候,必然会提升自身的性能,它在体量上就与以往的系统发生了很大的变化,它的集成能力就是非常大的,有利于集成系统的丰富和发展。
二、基于ARM的嵌入式系统硬件的整体设计与细节内容研究
对于数控系统的整体方案设计过程来说,该项设计内容不是孤立存在的,而是要从整体的数控系统出发,能够符合整体数控操作系统的要求,把这个方案设计的更加完美,才能称之为完善的设计方案。数控装置实质我们要剖析清楚,把计算机技术的支撑做牢,搭建操作控制硬件平台。在对传统的数控系统构造更新改造的基础上,基于ARM的嵌入式数控系统硬件平台就发生了很大的变化,其功能有了较大的改善,为实际生产工作带来了诸多便利。
现阶段,我国专家学者对于数控系统内容的探究一直在继续,因其对社会生产实践具有极大的研究价值。随着电子计算机技术的应用,网络信息技术的迅猛发展,嵌入式数控系统的硬件设计内容也在逐年更新换代,并进行了多次的改革,使得升级后的硬件系统发生了质的飞跃,更能够符合现代工农业生产对技术领域的要求。
(一)处理器设置。基于ARM视域下的嵌入式系统硬件有其独特性,尤其是在处理器上更是有着非同的反响,其自身特有的优势是很多处理器无法抗衡的,它的处理器有很多的优点,不仅在体积上有其灵活性,在资源的消耗上也有它的独特性,属于低耗能的能源,同时还有较好的性能,保护系统也是独一无二的。所以ARM的嵌入式处理器的优势是显而易见的,它的应用性在网络产品中运用得十分广泛。处理器是硬件系统的大门,是非常重要的一个环节,它是系统运行的核心,针对处理器的设计要注重性能、质量以及保护,要摒弃繁杂的成分,不断提升处理器的运用效率,从而实现整个系统的高效使用。
(二)外围接口设置。嵌入式的硬件系统需要选择合理的配件,各个硬件之间的连接和组合都要做到优化,从而让个配件之间的配合取得良好的效,能够有效地提升运作质量和效率。外围接口的设计要注重巧妙和灵活,尽量小化,要符合嵌入式的特点。通过设计较为精简的外围接口,可以有效地保证硬件系统运行的稳定性和持续性。针对嵌入式系统最好的外围接口设计要能够完美地将处理器和接口连接在一起,达到无缝的效果。外围的电路要尽量精简,不仅能够有效地节省成本,还能够适当地压缩硬件系统的体积。
(三)针对性设计。基于ARM的嵌入式硬件系统特点,要根据实际需求来进行设计,不同的用户有着不同的需求,不同 的项目需要不同的设计需求。嵌入式系统设计为最关键,其他的各项设计都是起辅助作用,围绕这个最关键的嵌入式系统展开并继续的。因为嵌入式硬件系统有着自身的特点,它的使用周期长,所以要考虑系统软件的设计,对硬件的升级也要有所考虑,从而实现整体系统的正常运营,并且合理的迎合实际需要。在正式的系统设计投入运用前,我们也要考虑相关的因素,需要调试现行试验程序的配置,在有限的时间内进行必要的模拟运行,通过不断的调试来不断系统,进而满足用户和项目的实际需求,使其更好地为系统运行提供服务。
(四)软硬件协作处理设计。嵌入式的硬件系统运行要有软硬件的相互协作才能实现其最大的价值。该系统需要有对应的软件来配套,硬件也不能马虎,对硬件要进行周密的设计,在设计的基础上进行详细的分析。嵌入式在设计过程中需要软件硬件的通力协作,刚开始的设计就要考虑到软硬件的在某种程度上的划分,根据某种程度上的划分,对软件硬件的功能用固定区域来进行限制,使部分的功能发挥最大的作用,进而实现整体效果的优化,让整体的功能和效益得到最大价值的发挥。
结束语:通过对数控系统的运作机理进行研究,并结合国内外在实践过程中常用的数控系统硬件结构的设计内容,提出了基于ARM的嵌入式数据控制系统硬件平台的设计方案。该设计能够将ARM、FPGA低功率的特征发挥出来,采用低功率的设备及器件组合,构建了低功耗的硬件系统电路。总之,该系统设计的内容符合当前工业生产所需达到的标准,具备一定的实践价值。
参考文献:
[1] 蔡建平. 关于嵌入式应用开发技术[J]. 单片机与嵌入式系统应用. 2001(03)
在室内安装施工中,有时需要从墙壁的一侧向不可直接看见的另一侧钻通孔,需要预先确定通孔的进口和出口的位置。钻孔定位仪是一种电子仪器,由发射和接收两个部分组成。将发射部分放在墙壁另一侧选好的位置上,在墙壁的一侧通过移动接收部分找到对应位置,并发出成功信号。当偏离对应位置时接收部分还可在一定范围指示偏离方向。
根据设计要求,有多种实施方案。方案一:发射部分为一个线圈,线圈的中心就是需要打孔的位置,在墙壁的另一面摆放一只接收线圈,通过这个线圈所接收到的信号,判断发射线圈的中心位置。此方案很容易受到干扰的影响;方案二:发射部分为一个线圈,线圈的中心就是需要打孔的位置。在墙壁的另一面摆放两只接收线圈,通过这两个线圈所接收到的信号,判断发射线圈的中心位置。此方案发射线圈的中心位置不易判断;方案三:发射部分为单个线圈,线圈的中心就是需要打孔的位置。在墙壁的另一面摆放三只接收线圈,通过这3个线圈所接收到的信号,判断发射线圈的中心位置。本设计采用该方案,该方案定位准确,系统的抗干扰能力强。
1 主要单元电路分析
1.1 系统总体方案
发射部分为单个线圈,线圈的中心就是需要打孔的位置。在墙壁的另一面摆放3只接收线圈,通过这3个线圈所接收到的信号,判断发射线圈的中心位置。本设计采用该方案。该方案定位准确,系统的抗干扰能力强,总体方案如图一所示。
1.2 发送接收电路
发送电路如图二所示。采用RC桥式正弦波振荡电路发送音频信号,为避免喇叭噪声将其替换为带铁心的线圈,增加铁心能够增强发射信号强度。接收电路采用普通的耳机模块作接收电路。
1.3 控制器电路
LPC2138最小原理图如图三所示。采用功能强大、性能稳定、精度高的LPC2138作为微处理器,能满足本项目要求。因为在其芯片上集成了2个8路10位A/D转换器,适合本设计要求。
1.4 液晶屏显示电路
液晶显示电路如图四所示。液晶部分由按键控制,在定位检测仪器四个方向设置LED,当该向哪个方向移动时,哪个方向LED亮。
2 结束语
本钻孔定位仪能达到设计要求,能较准确地找到对应中心位置,在移动过程中能指示偏离方向,找到后能发出确定信号,能较准地定出钢筋的位置和走向。
参考文献
[1]梁灿彬等.电磁学(第二版)[M].北京:高等教育出版社,2004.
关键词:Flash存储器;μC/OS-II;嵌入式文件系统
中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)16-31081-03
The Design of aFacility Embedded File System Based on ARM7TDMI
ZHANG Yan-wei,WEI Yin-ku
(Air Defense Command College of the PLA,Zhengzhou 450052,China)
Abstract:According to the features of flash memory,a embedded file system is presented,which fits for a lot of open source real—time operation system.At first we introduce the naturalization,which based on lot of open source real—time operation system μC/OS-II .and then ,we introduce an facility file system.the last we educe the conclusion from testing:The instrument indicate that the embedded file system is simple,highly dependable and efficient
Key words:Flash memory;μC/OS-II;embedded system
随着电子技术的不断发展,嵌入式计算机系统凭借其特有的功能和资源占用量少的特点,在各个领域得到了越来越多的应用。在越来越多的场合中要求存储器的容量不断的扩大,然而在这种情况下若没有文件系统支持,数据的存储就难以管理,故使用文件系统是嵌入式技术发展的必然趋势。
1 嵌入式操作系统选择
目前流行的嵌入式操作系统可以分为两类:一类是从运行在个人电脑上的操作系统向下移植到嵌入式系统中,形成的嵌入式操作系统,如微软公司的Windows CE及其新版本,SUN 公司的Java操作系统,朗讯科技公司的Inferno,嵌入式Linux等。这类系统经过个人电脑或高性能计算机等产品的长期运行考验,技术日趋成熟,其相关的标准和软件开发方式已被用户普遍接受,同时积累了丰富的开发工具和应用软件资源。另一类是实时操作系统,如WindRiver 公司的VxWorks,ISI的pSOS,QNX系统软件公司的QNX,ATI的Nucleus,μC/OS-II,中国科学院凯思集团的Hopen 嵌入式操作系统等,这类产品在操作系统的结构和实现上都针对所面向的应用领域,对实时性高可靠性等进行了精巧的设计,而且提供了独立而完备的系统开发和测试工具,较多地应用在军用产品和工业控制等领域中。这些种类繁多的操作系统中,μC/OS-II和μcLinux为公开源代码操作系统,目前得到了较多的认可,但相对于μcLinux系统,μC/OS-II具有体积小、高实时性的特点,因此设计使用时选择了嵌入实时操作系统μC/OS-II。
2 μC/OS-II的移植
2.1移植μC/OS-II的综合考虑
μC/OS-II是一个通用的嵌入式实时操作系统,具有很好的可移植性。大部分μC/OS-II的代码是用C语言编写的,但是仍有一部分代码是与处理器相关的。系统移植需要考虑CPU细节以及所用编译环境,虽然有各种成功移植的范例,但在LPC2210处理器上移植的范例并不多见。本人在借鉴他人移植代码基础上,实现了μC/OS-II在本次应用硬件系统上的移植。本节介绍使用ADS1.2编译器,把μC/OS-II 2.52移植到LPC2210处理器为CPU的具体实现。
然而任何操作系统的移植都有相当一部分工作是和所用处理器的体系结构密切相关的,因此在做具体的移植工作之前,需要先了解该处理器的体系结构在移植过程中要注意的特性。
(1)处理器模式:LPC2210是一款ARM7TDMI核的微处理器,同所有ARM7TDMI核芯片一样,该处理器工作在7种模式下,其中管理、终止、未定义、中断和快速中断模式都和相应的异常对应,能作为任务使用的模式只有系统态和用户态,比较这两种模式,区别在于系统态可使用特权指,但ARM7TDMI处理器没有存储管理器件MMU,所有代码运行在同一存储空间,各任务堆栈之间并没有保护隔离机制,这样并不能给多任务带来保护,同时系统模式可直接操作程序状态寄存器,这能给开关中断带来方便,权衡利弊,系统任务工作模式选择系统态。
(2)程序状态寄存器:程序状态寄存器CPSR(Current Program Status Register),它的[0--4]位用来表示CPU Mode,每一种处理器异常模式,都有一个对应的SPSR(Saved Program Status Register)寄存器,用来保存进入异常模式前的CPSR。SPSR的作用就是当CPU从异常模式退出时,通过一条简单的汇编指令就能够恢复进入异常模式前的CPSR,该值保存在当前异常模式的SPSR中。非异常模式的 usr和sys模式下没有 SPSR,只有 CPSR。不能显式地指定把 CPSR 保存到某个异常模式下的 SPSR,而必须是变更到该异常模式后由CPU自动完成,不能硬性赋值,因为该模式下SPSR在其他模式下不可见。需要注意的是程序状态寄存器只能在特权模式下修改,通常调用SWI软件中断指令,切换到管理模式后进行修改。
(3)软件中断:软件中断由执行SWI指令产生。在其他模式中调用SWI指令,可使CPU工作模式切换到管理模式,可用于用户模式下的程序调用特权操作指令,可使用该机制实现开关中断等系统功能调用。
(4)上下文切换:ARM处理器执行的CPU上下文,涉及共37个寄存器,其中31个是通用寄存器,包括一个程序计数器PC,另外6个分别是CPSR和五种异常模式程序状态保存寄存器。
(5)堆栈生长方向:μC/OS-II使用结构常量OS_STK_GROWTH
定义堆栈增长方向,这一常量允许两种方向,分别是向上和向下增长,虽然ARM支持了两种方式,但ADS1.2编译器只支持满递减的堆栈方式。
2.2 μC/OS-II系统文件结构
在移植过程中把整个系统代码分为三大部分(共15个文件):一是μC/OS-II核心代码部分,包括10个C程序文件和1个头文件,主要实现了系统调用、任务管理、内存管理、任务间通信等系统功能,这部分代码与处理器无关,在移植过程中无须处理;二是应用程序配置相关部分,包括系统配置相关的两个头文件,对其中相关C语言定义开关的使能或禁能可实现系统的剪裁;三是处理器相关代码部分,包括三个文件,系统移植代码集中在这里。μC/OS-II系统文件结构如图1。
图1 μC/OS-II系统文件结构
2.3移植μC/OS-II
2.3.1 OS_CPU.H的移植
该文件涉及处理器和编译器相关的数据类型定义以及处理器相关的宏定义。根据ADS1.2编译器特性,可以定义数据类型BOOLEAN、INT8U、INT8S等,定义代码见程序清单略。
与处理器相关的宏主要是进入临界区的OS_ENTER_CRITICAL和退出临界区的OS_EXIT_CRITICAL,这里开关中断方式采用方式2,两个开关宏定义为直接操作CPSR寄存器。另外定义OS_TASK_SW()和_OSStartHighRdy()为软件中断函数来为系统提供底层驱动。用软中断作为操作系统的底层接口就需要在C语言中使用SWI指令。在ADS中,有一个关键字__swi,用它声明一个不存在的函数,则调用这个函数救灾调用这个函数的地方插入一条SWI指令,并且可以指定功能号,同时,这个函数也可以由参数和返回值,其传递规则与一般函数一样。相关宏定义见程序清单略。
2.3.2 OS_CPU_C.C的移植
按μC/OS-II要求在OS_CPU_C.C中,需要编写10个C函数,其中9个为钩子函数,在移植过程中简单地把这几个函数处理为空函数了,主要的移植工作在OSTaskStkInit()函数上。分析该函数功能为初始化任务的栈结构,并使所有的寄存器都保存在堆栈中。实现过程中,注意SPSR初始为系统模式并使能中断,具体实现见代码清单略
2.3.3OS_CPU_A.S的移植
在OS_CPU_A.S中,编写3个汇编语言函数,OS_TASK_SW(),__OSStartHighRdy()和OSTICKISR(),并编写了软件中断服务程序。在调用软中断之后,处理器切换到ARM指令和管理模式下工作。在执行软件中断服务函数之前,要提取中断号,这些通过软件中断服务程序完成,具体实现见代码清单略。
任务切换发生在当前任务调用OS_TASK_SW函数主动交出CPU控制权和发生中断时调用OSIntCtxSw函数时,虽然这两个函数执行的条件不同,但是它们的功能相同,实现中让这两个函数公用了一个任务切换代码,其中OS_TASK_SW是通过软件中断0完成的,具体实现见代码清单略。
系统多任务环境由函数OSStart()启动,用户在调用该函数之前,必须已经建立了一个或更多任务。OSStart()最终调用函数OSStartHighRdy()运行多任务启动前优先级最高的任务,而它最终是调用__OSStartHighRdy实现的,其代码见程序清单略。
函数OSTickISR为系统时钟节拍中断函数,这需要使用处理器的定时器和定时中断,为达到集中地初始化硬件的目的,此函数放在了启动代码文件中,实现见程序清单略。
3 简易文件系统设计
3.1文件系统设计方案
用以存储文件数据的设备就是文件系统设备,文件系统设备向文件系统提供数据的物理存储服务。文件系统通过设备驱动程序对文件系统设备进行操作。本设计选择NandFlash存储器作为存储文件数据的设备,U盘就是USB接口大容量FLASH存储盘,它是一种新型移动存储设备,以体积小、速度高、抗震动、通用性强的特点倍受青睐。
通过设计U盘读写协议栈,微处理器已经能够对U盘的某一特定扇区读写。为了让系统写入U盘的数据直接被Windows系统所识别,还需要设计一个符合FAT格式的文件系统。为此我们再来分析需求:一是符合FAT文件系统格式;二是实现数据输入,数据结构不大于80字节;三是能对需要存储数据进行保存。根据对实际需求的分析,基于面向应用,满足应用要求的思路,最后确定文件系统方案为:在Windows NT系统环境下格式化U盘,同时建立一个名为“Hanglu.dat”的文件,通过该文件在嵌入式系统与PC机的Window系统交互,该文件格式固定为数据结构数组文件。根据以上方案,实际研究过程中我设计了一个较为简易的文件系统,该文件系统格式与FAT兼容,实现了嵌入式终端写入的文件能够被Windows系统直接作为文件读写,同时Windows系统上对文件写入的数据也能被嵌入式终端识别。之所以说是一个简易的文件系统,是因为该系统是高度面向本次应用的,而没有提供通用接口,它只默认对一个固定文件名为“Hanglu.dat”的文件进行读写操作,没有实现文件创建及删除功能,不能对文件名进行修改,也不能对通用文件进行操作。
3.2文件系统初始化
文件系统初始化是该系统的核心所在,文件操作的准备工作都在该过程中完成。系统初始化首先获取U盘信息,然后通过比对查询的方法在FDT目录表中查找“Hanglu.txt”目录项,根据目录项中“首簇”值再到FAT区追踪簇链到最后一个,然后根据该值在这一簇中查找EOF所在扇区,并把该扇区数据读到系统RAM中以备读写文件的需要。该过程中比较有特色的是,构建了一个扇区指针数据结构,该数据结构的三个指针成员分别指向“Hanglu.txt”文件末簇指针在文件分配表中、目录项在目录分配表以及EOF的扇区号,这就为后面的文件操作提供了极大的方便。图2为文件系统初始化流程图。
图2 文件系统初始化流程图
获取U盘信息主要包括U盘每扇区字节数、每簇扇区数、FAT开始扇区号、FAT表个数、根目录占扇区数、逻辑盘(卷)总共扇区数、FAT表占用扇区数、根目录开始扇区号以及数据区开始扇区号等数据。U盘在格式化后,把这些信息保存在U盘引导区中,读取U盘引导区可获得以上所列的大部分数据,还有些数据通过计算就可获得。获取U盘信息程序见清单略。
3.3文件读写
系统经初始化后,数据文件的最后一部分数据以读到了系统RAM中,读输入的数据只需要分析出该数据即可。在此不再过多描述。
追加方式写“Hanglu.dat”文件首先判断数据是否小于初始化获取的EOF指针所指簇空间,因为FAT文件系统规定文件存储的最小单位为簇,所以在当前簇空间不足时,需要先遍历文件分配区分配一个空闲的簇空间,并把剩余的数据写入其中。
4 结论
本设计是根据具体需求和项目指标对源代码开放的实时嵌入式操作系统 μC/OS-II进行了有针对性的移植,并在上基础上提出了适合本设计要求的镜文件系统。经实验测试该文件系统运行良好,性能稳定,可靠性强。下一步的工作扩充设备驱动程序库,使之支持更多各式各样的外部设备。
参考文献:
[1]ARM 公司.ARM7TDMI-S Reference Book[M].
[2]Philip公司.UM_LPC2114_2124_2212_2214_2 Datasheet[M].
[3]Andrew N Sloss.ARM嵌入式系统开发—软件设计与优化[M].北京:航空航天大学出版社,2005.
[4]Wayne Wolf.嵌入式计算系统设计原理[M].北京:机械工业出版社,2002.
[5]张宁.等.基于MSP430和CF卡的FAT16文件系统设计[J].长春理工大学学报,第29卷第1期.
[6]刘忆辉.MM36SB020中一个类FAT16文件系统实现[J].2005年全国单片机与嵌入式系统学术交流会论文集.
[7]Jean JLabrosse.著.邵贝贝.等译.嵌入式实时操作系统uC/OS-II(第2版)[M].北京航空航天大学出版社,2005.
CAN (Controller Area Network)为控制器局域网络,CAN总线规范已经被国际标准化组织制订为国际标准ISO11898,并得到众多半导体器件厂商的支持,推出各种集成有CAN协议的产品。CAN属于总线式串行通信网络,由于其采用了许多新技术和独特的设计,低成本、高可靠性、实时性、灵活性、抗干扰能力强等特点,已被广泛应用于各个自动化控制系统中。在汽车电子、自动控制、电力系统等领域,CAN总线具有无可比拟的优越性[1]。
以太网以其通信数据量大、传输速度快、开放性好、成本低等优点,弥补了现场总线通信速率低的缺陷,成为现阶段信息网络应用最广的局域网技术。用以太网直接进入工业控制领域,目前还存在一些问题,以太网的媒体访问方式CSDA/CD不能保证网络传输的确定性和实时性,不能满足工业现场恶劣环境的要求。将以太网引入工业测控领域,通过与现场总线(CAN BUS)分工合作,构成两种异构网络结构,将高效的以太网和低速的现场总线相结合,解决大规模测控系统实时性和可靠性矛盾,提高整个系统的工作效率。两种异构网络的互连,需要用嵌入式网关实现。
CAN/Ethernet网关设计的主要任务是协议转换,要求数据解析正确完整,同时响应迅速、耗时低、实时性和安全性好。基于RISC架构的ARM微处理器指令执行效率高,软件操作平台易于建设,同时具备丰富的外围扩展电路,能满足实时多任务要求。使用ARM技术构造以太网与CAN现场总线协议转换网关是一种高效可行的方案。
1 网关硬件系统组成
网关的主要功能是进行以太网数据报文与CAN数据帧之间的协议转换,实现以太网与CAN总线的互联。系统的硬件组成包括CAN总线接口设计和以太网接口设计,如图1所示。
S3C2410 是Samsung公司推出的一款低价位、低功耗、高性能的32 位RISC 嵌入式处理器。该芯片采用ARM920T内核,5级流水线和哈佛结构,工作频率高达266 MHz,运行速度可达1.1 MIPS。S3C2410 提供了丰富的内部资源,如:SDRAM控制器、LCD 控制器、3 通道的UART、4 通道的DMA、2 个SPI 模块,支持轮询、中断与DMA三种数据发送模式。虽然内部没有CAN 控制器,但可以通过SPI 接口进行扩展,接口电路简单,易于实现[2]。
CAN总线接口电路主要采用带SPI接口的独立CAN控制器MCP2510、CAN总线收发器TJA1050、高速光隔6N137和DC/DC电源隔离模块DCR010505等设备组成。独立CAN控制器MCP2510完全支持CAN总线的V 2.0A和V 2.0B 的技术规范。系统设计时,将MCP2510 作为从设备连接到S3C2410 的SPI0 口[3]。TJA1050总线收发器是CAN控制器和物理总线之间的接口芯片,增强了总线的驱动能力。为增强CAN总线节点的抗干扰能力,MCP2510的TXCAN 和RXCON并不直接与TJA1050的TXD和RXD相连,而是通过两片光电耦合器6N137与TJA1050相连,同时光隔芯片的两端电源采用DC/DC模块进行隔离。这样就实现了系统外总线CAN节点间的完全电气隔离,增强了节点的稳定性和安全性。总线两端都接有1个终端电阻(120 Ω)和1个TVS管,以消除反射信号,有效提高系统的抗干扰能力。
以太网接口电路是在S3C2410片上扩展网络接口芯片RTL8019AS,RTL8019AS是台湾REALTEK公司生产的一种基于ISA总线的高度集成的以太网控制器。它实现了以太网媒介访问层(MAC)和物理层(PHY)的全部功能,包括MAC数据帧的收发、地址识别、循环冗余检验(Cyclic Redundancy Check,CRC)编码/校验、曼彻斯特编解码、超时重传、链路完整性测试、信号极性检测与纠正等。RTL8019AS与主处理器有3种接口模式,跳线模式(Jumper),即插即用模式(PnP)和免跳线模式(Jumperless)。系统采用常见的跳线模式来选择I/O端口和中断[4]。
2 协议转换流程
当CAN总线上的设备向Ethernet网发送数据时,嵌入式网关将接收到的CAN数据包解析,提取数据域中的内容;然后按照TCP/IP协议进行封装,嵌入式网关将经过封装的数据发送给以太网控制芯片RTL8019AS。由RTL8019AS自动给这些数据添加以太网物理层和逻辑链路层所需的相关信息,通过物理接口传送到以太网。反之,当以太网向CAN总线上设备发送TCP/IP 数据包时,它首先将数据发送到RTL8019AS,嵌入式网关从RTL8019AS中接收到数据后,提取实际要传送的数据,然后封装成CAN总线数据格式,通过CAN总线将数据发送到网络中的现场设备。
嵌入式网关硬件必须具有以太网接口和CAN 总线接口,而软件要有TCP/IP 协议栈和CAN 总线驱动程序;通常嵌入式Linux 内核中有完整的TCP/IP协议栈。由于REALTEK公司支持Linux的开发,Linux系统中已含有RTL8019AS芯片的通用驱动程序,CAN 总线协议驱动并不是标准配置。因此,设计CAN 总线接口及其编制驱动程序是实现嵌入式网关最主要的工作[5]。
3 CAN驱动程序设计
Linux 驱动程序属于Linux 内核的一部分,是嵌入式系统控制硬件的接口,它为用户屏蔽设备的工作细节,并向用户提供透明访问硬件设备的机制。驱动程序的开发在嵌入式系统开发中具有举足轻重的地位。开发出稳定、完备的驱动程序可提高整个系统的性能。
3.1 CAN驱动程序流程
MCP2510 的内部结构框图如图2所示。MCP2510内含3个发送缓冲器和2个接收缓冲器,同时还具有灵活的中断管理能力。CAN协议机负责与CAN总线的接口,SPI接口逻辑用于实现同MCU 的通信,而寄存、缓冲器组与控制逻辑则用来完成各种方式的设定和操作控制[6]。
在Linux多任务操作系统中,CAN总线通信程序的设计可分为发送数据模块、接收等待模块和中断处理模块实现。系统中CAN总线的数据发送和接收是两个不同的线程。在驱动程序中建立数据发送和接收缓冲区。中断处理程序只负责填充(或读取)缓冲区中的数据,然后唤醒等待接收(或发送)数据的任务。数据的发送与接收都通过独立的缓冲区,并由中断来实现。操作系统的中断响应时间在软件上决定了CAN总线数据的最快收发速度。
3.2 CAN设备驱动程序的实现要点
3.2.1 CAN设备驱动操作函数
CAN 设备驱动程序最终提供给应用程序的是一个流控制接口,主要包括:open,realse,read,write,ioctl 等操作。添加设备驱动程序,实际上就是给上述操作编写相应的程序代码[7,8,9]。驱动程序加载到内核时,会首先运行驱动程序的初始化函数,然后等待系统调用在file_operations 数据结构中定义的相关函数,实现对设备的操作。系统使用Linux 2.4.18版本,其文件系统接口被写义为:
s3c2410 mcp2510 open负责对将要进行的I/O操作做好必要的准备工作,主要包括限制CAN打开次数、清空3个发送缓冲区和2个接收缓冲区等。
s3c2410_mcp2510_write 将要发送的数据通过SPI 总线将数据传送MCP2510 的发送缓冲器,再通过MCP2510 将数据发送到CAN总线。
s3c2410_mcp2510_read 用于将MCP2510 从CAN 总线上接收到接收缓冲器的数据,通过SPI 总线读到用户区,并返回所读出的字节数。
s3c2410_mcp2510_ioctl 用于控制CAN总线通信的波特率、设置帧ID、设置工作模式、设置设备滤波器等工作。
s3c2410_mcp2510_release 用于释放所占用的内存、中断等资源。
3.2.2 CAN 设备的初始化函数
CAN 设备的初始化函数主要负责创建CAN 设备的节点设备文件、注册CAN 设备的中断处理函数、初始化MCP2510 等工作。
在Linux系统中,初始化函数从s3c2410_mcp2510_init( )开始。通过调用register_chrdev 向系统注册字符型设备驱动程序;通过devfs_register( )函数创建设备文件系统的CAN设备节点。同时,CAN设备驱动程序通过调用request_irq 函数来申请中断,向系统注册CAN设备的CAN中断处理函数s3c2410_isr_mcp2510( )。在实现了MCP2510的各个接口函数后,还需要编写MCP2510 的模块加载函数module_init( )和模块卸载函数module_exit( ),用于向内核注册设备及注销设备[10]。
3.2.3 驱动程序的加载与使用
Linux设备驱动会以内核模块的形式出现。Ethernet/CAN 网关设备驱动程序作为内核的一部分,应在编译时把设备驱动程序编译成可加载的模块。当使用insmod命令加载内核模块时,模块的加载函数module_init(初始化函数名)会自动被内核执行,将初始化函数加入内核全局初始化函数列表中,在内核初始化时执行驱动的初始化函数,从而完成驱动的初始化和注册,之后驱动便停止等待,被应用程序调用。当用rmmod 命令卸载某内核模块时,模块的卸载函数module_exit(退出处理函数名)也会自动被内核执行,完成与模块加载函数相反的功能。当驱动程序加载到内核中后,就可将CAN设备文件进行open,read,write,release等操作。
4 结 语
随着工业控制系统性能的提高,以太网在工业上的应用也会越来越广泛。在此详细介绍了一种嵌入式网关的设计与实现。作为连接以太网和现场总线的纽带,实现以太网与CAN现场总线之间的协议转换,为CAN/Ethernet的互联提供了一种传输速度快、成本低,稳定性和安全性高的解决方案。同时,利用嵌入式ARM处理器,接口资源丰富,设计通用性强,便于扩展其他现场总线与以太网的互联,具有较好的应用推广价值。
参考文献
[1]李正军.现场总线及其应用技术[M].北京:机械工业出版社,2008.
[2]Samsung Electronics Limited.User′s Manual of S3C2410[Z].2002.
[3]MicroChip Technology Inc.MCP2510 data sheet.2002.
[4]符意德,陆阳.嵌入式系统原理及接口技术[M].北京:清华大学出版社,2007.
[5]罗苑棠,杨宗德.嵌入式Linux应用系统开发实例精讲[M].北京:电子工业出版社,2007.
[6]杨庆华,张景元.单片机和MCP2510的CAN总线通信模块设计[J].单片机与嵌入式系统应用,2007(3):35-37.
[7]邵如峰,宋益青.基于ARM9和嵌入式Linux的CAN网关设计[J].微计算机信息,2008(24):15-16.
[8]陈祖爵,周明.嵌入式Linux下CAN控制器的驱动程序设计[J].计算机工程与设计,2006(11):4 097-4 100.
[9]刘淼.嵌入式系统接口设计与Linux驱动程序开发[M].北京:北京航空航天大学出版社,2006.
关键词:ARM,嵌入式软硬件系统,设计
随着计算机技术和信息处理技术的飞速发展, 嵌入式软硬件系统在社会各个领域的应用越来越广泛。基于ARM的嵌入式软硬件系统是一种比较特殊的计算机系统, 具有系统精炼简洁、针对性强、功能强大、程序质量高、系统可靠性强等特点, 能极大的提高系统处理效率。
1 基于ARM嵌入式软硬件系统的理论概述
1.1 ARM架构
ARM是一种精简的指令集机器, 基于ARM架构的产品具有功耗小、质量优越、价格低廉的特点, 如RISC处理器, 在教育多媒体、嵌入式控制、DSP等领域中有十分广泛的应用。基于ARM体系结构的32位嵌入式RISC微处理器结构具有良好的节能效果, 特别适合移动通讯领域设计。
1.2 嵌入式系统
嵌入式系统主要由输入软件、处理器、存储器、输出软件等构成, 其中处理器是嵌入式系统的关键部位, 目前, 全球共有上千种嵌入式处理器, 并且每种处理器都有自身的优势及不足。对嵌入式系统而言, 处理器的关键特性是性能高、能耗小、成本低;存储器是嵌入式系统的另一大重要部分, 其稳定性及容量大小对嵌入式系统的正常运行有很大的影响, 因此, 在进行嵌入式系统设计时, 要选择与嵌入式系统处理器相匹配的存储器, 从而确保嵌入式系统的正常运行。
2 基于ARM的嵌入式软硬件系统设计
在嵌入式系统中, 系统硬件是系统软件和程序运行、操作的基础, 只有确保硬件设计的合理性, 才能为嵌入式系统的正常运行提供保障, 下面就嵌入式系统硬件设计及软件设计进行分析。
2.1 硬件设计
2.1.1 处理器设计
ARM嵌入式处理器具有体积小、消耗资源少、质量好等特点, 因此, 在各种网络产品以及数字产品中有十分广泛的应用。处理器是嵌入式系统正常运行的关键部分, 在进行嵌入式系统出处理器设计时, 必须确保其综合性能以及质量符合相关规定, 并且要将处理器冗余部分去除, 从而有效地提高系统的运行性能。
2.1.2 外围接口设计
在进行嵌入式处理系统硬件设计时, 要选择合理的器件, 确保各个器件之间的良好连接, 为各器件之间的良好配合提供保障, 提高系统硬件的有效性。在进行嵌入式系统外围接口设计时, 要保证外围接口的灵活多变, 并且外围接口要符合嵌入式系统小型化的特点, 只有这样才能为系统的灵活性、稳定性、可靠性提供保障。对于嵌入式系统, 要实现外围接口和处理器之间的无缝连接, 并简化外围电路, 这样不仅能减小整个系统的体积, 还能有效地降低系统的设计成本。
2.1.3 针对性设计
在进行嵌入式系统设计时, 需要根据项目的实际情况以及用户的实际需求进行, 因此, 整个设计过程要针对其设计目标开展, 只有这样才能为嵌入式系统的设计提供指导。由于系统设计是一个长期性工作, 因此, 在设计过程中, 设计人员要对软件更新、系统升级等因素进行充分考虑, 并在针对性设计前, 对相应的程序进行仿真运行, 在不断调试中, 确保嵌入式系统能满足用户的需求。
2.2 嵌入指纹识别模块及软件设计
在嵌入式系统设计过程中, 要在硬件设计的基础上, 通过串口嵌入指纹识别模块, 从而为系统的正常通信提供保障。选用的指纹识别模块需要具有良好的光学传感功能, 如Flash芯片、DSP处理器等, 指纹识别模块的主要功能有指纹图像处理、模板匹配、模板提取、模板保持、指纹搜索等。嵌入式系统程序主要由管理和通讯两大部分组成, 以指纹识别模块的相关协议为主, 对其进行编写, 不仅能接收、校验相关数据, 还能在数据库中添加用户信息。通过LCD液晶显示和键盘, 能对现场情况进行直接控制, 从而确保系统的持续运行。
2.3 嵌入式系统的软、硬件协同设计
在进行嵌入式系统设计时, 需要对系统的硬件、软件进行详细的分析和设计, 一般情况下, 在设计过程中, 需要将系统的硬件和软件看成一个整体, 但在初期设计过程中, 需要对系统的硬件功能和软件功能进行详细的划分, 并将其相应功能区域固定好, 这样才能确保嵌入式系统硬件和软件的良好组合, 才能充分发挥整个系统的功效。在这个过程中, 还需要进行嵌入式系统的硬件和软件的协同设计, 从而确保系统硬件和软件获得最佳效益。
3 结语
嵌入式系统设计一项复杂的工程, 基于ARM嵌入式系统的软硬件设计和整个系统的设计有很大的关联, 随着信息技术的持续发展, 嵌入式系统结构的应用将会越来越广泛, 因此, 做好嵌入式系统的设计工作是十分重要的。
参考文献
[1]李登科.基于ARM的嵌入式系统硬件设计探究[J].中国电子商务, 2011 (3) :259.
[2]刘芳宇.基于ARM嵌入式系统的设计及其应用[J].计算机光盘软件与应用, 2012 (9) :173-174.
p H值是工业生产过程中的一个十分常见的控制参数,保持被控过程的p H值稳定,对稳定生产过程,提高产品质量,减少原材料消耗等多方面均起到非常积极的作用。因此,在糖厂、选矿厂、化工等企业实施p H值自动控制系统具有很重要的意义[1]。而p H值控制器的性能对p H值控制效果起到至关重要的作用。为此,本文设计了一种以3 2位高性能A R M 9处理器S3C2410A为核心的嵌入式p H值测控系统。
2 p H值测控系统简介
一般p H值测控系统主要由p H值控制器、p H值测量电极、p H值测量电极除垢装置、加酸/碱装置和上位机等几个部分组成。以蔗糖生产的中和、澄清工段的p H值测控系统为例,其结构如图1所示:
甘蔗压榨后的蔗汁中附着有大量的杂质,蔗汁呈酸性,根据我国蔗糖生产的亚硫酸法工艺,蔗汁在蒸煮之前必需进行中和、澄清,以便去除蔗汁中的非糖成份。通过在蔗汁中加入石灰乳来调节蔗汁的p H值,p H值的控制效果直接影响产糖的产量和品质。由于蔗汁粘稠度较高,容易造成p H值测量电极被污染、结垢,从而造成p H值测量的精度降低,因此通常采用的是两个电极轮换工作的办法,即一个电极在测量p H值的时候,另外一个进行清洗除垢,设置一个合理的轮换时间,进行清洗除垢工作。通过p H值测量电极,可以获得蔗汁的p H值,控制器根据获得的p H值与设定值相比较,调节石灰乳的加入量,使其满足生产要求(一般澄清后蔗汁的p H值在7.0~7.2之间)。
3 基于S3C2410A的嵌入式p H值测控系统硬件设计
本文所设计的基于S3C2410A的嵌入式p H值测控系统硬件部分主要包括以下几个部分:S3C2410A核心控制板,电平转换电路,D/A转换电路,其结构图如图2所示。
3.1 硬件系统设计
p H值测控系统A R M核心控制板包括A R M芯片、Nand Flash存储器、Nor Flash存储器、SDRAM存储器、RS-232串行接口、USB Host、USB Device、CS8009A以太网网络接口、JTAG调试接口以及用于人机交换的触摸屏等。其中,A R M芯片采用的是三星公司生产的3 2位嵌入式处理器S 3 C 2 4 1 0 A,采用ARM920T内核,工作频率可以达到203MHz,并且内部集成了丰富的功能模块;Nand Flash采用了三星公司生产的64M×8位存储器K9F1208U0B;SDRAM采用的是现代公司生产的HY57V561620FTP-H,存储容量为4Banks×4M×16位(32M字节),本系统使用两片16位的HY57V561620FTP-H并联成为32位数据宽度的S D R A M存储系统,总容量为6 4 M。
3.2 A/D转换电路
A/D转换电路采用S3C2410A微处理器自带的A/D转换器,它提供了1个8通道的模拟输入转换器,可以将模拟输入信号转换成为10位数字编码,A/D转换的最高时钟频率为2.5MHz,其最大转换率为500KSPS,输入电压的范围是0~3.3V。同时S3C2410A的A/D转换器支持片上操作,具备采样保持功能以及掉电模式[2],可以满足整个系统的精度要求。
3.3 D/A转换电路
由于S3C2410A芯片本身并没有集成DAC转换器,因此本文采用外扩的DAC8420作为DAC转换器,它是Analog Devices公司生产的4路输出12位DAC,其特点是低功耗、转换精度高。DAC8420与处理器采用高速串行接口通信。
S3C2410A共有117个多功能复用输入/输出口(I/O接口),分成8组,即GPA~GPH,其中除了第一组只能用作输出口之外,其余7组I/O接口都是输入/输出接口,为了满足系统设计的需求,可以通过软件对I/O口进行配置。S3C2410A的I/O接口直流供电电压为3.3V,与D/A转换电路的5V电压不匹配,因此需要使用电平转换电路解决电平匹配的问题,实现3.3V电平和5V电平的相互转换。选择S 3 C 2 4 1 0 A的G P E口的G P E 1 4(IICSCL)和GPE15(IICSDA)作为74LS245选择信号,控制电平转换。然后通过G P E的G P E 5~G P E 1 0作为DAC8420的控制信号,实现D/A功能。
4 p H值测控系统软件设计
p H值测控系统软件设计包括:I/O接口驱动程序、A/D转换程序、D/A转换程序、数据的转换及显示程序以及控制算法等。限于篇幅原因,本论文只介绍p H值测控系统的A/D转换程序和D/A转换程序。
4.1 A/D转换程序设计
S3C2410A的A/D转换器包含8个通道,在接外部电压信号时,必须要共地,并且信号的电压范围必须是0~2.5 V。该A/D转换器包含两个A D C转换数据寄存器:A D C D A T 0和A D C D A T 1,这两个寄存器为只读寄存器,对于普通A/D转换,通常使用A D C D A T 0来保存转换后的数据,下面用程序说明使用A/D转换器的通道1采集模拟数据的具体情况。(由于篇幅原因,省略A/D转换寄存器相关的定义)。获取A/D的转换值。c h表示选择的通道号,代码如下:
通过串口和串口工具可以看到采集到的转换数据,程序如下:
运行结果如图4所示。
4.2 D/A转换程序设计[3,4]
S3C2410A通过DAC8420进行控制信号数据转换时,首先将片选信号CS置0,将异步DAC寄存器载入控制信号LD置1。通过串行输入接口SDI将符合DAC8420格式的数据分为两个字节输入串/并转换寄存器,头两位A1、A2用于选择寄存器A~D,后12位D11-D0是具体数字。数据转换完毕后,将LD置0,在LD的下降沿,串行输入寄存器里面的数据将被移到寄存器A~D,将LD置1,完成一次的数据转换。(注:由于篇幅关系,对于程序中涉及到的I/O地址以及延时子程序省去)
5 结束语
本文将S3C2410A、DAC8420运用于p H值测控系统中,利用A R M 9处理器强大的数据处理能力,以及S3C2410A处理器丰富的I/O接口,通过74LS245电平转换芯片解决了微处理器I/O输出电平与外设电平不匹配问题,利用S 3 C 2 4 1 0 A的A D C控制器以及外扩D/A转换电路,实现了控制功能,系统有一定的应用价值。
摘要:本文介绍了一种基于ARM9微处理器S3C2410A的嵌入式pH值测控系统,包括S3C2410A自带的A/D转换器ADC,D/A转换芯片DAC8420等接口芯片的软硬件设计。利用微处理器S3C2410A丰富的I/O接口,通过74LS245电平转换芯片,解决了S3C2410A嵌入式处理器I/O接口输出电平与外设驱动电平不匹配的问题。
关键词:S3C2410A,pH值控制,嵌入式系统
参考文献
[1]李文光,黄宋魏.新型糖厂混合液pH值控制系统[J].云南冶金,2005,34(3):63-66.
[2]S3C2410A:User Manual revision 1.0[Z],SamsungElectronics,2004,9-1~9-28,16-1-16-12.
[3]吕秋霞.四路输出D/A转换器DAC8420及其应用[J].国外电子元器件,2004,8,62-63.
【基于ARM的嵌入式RIFD读写器设计】推荐阅读:
嵌入式系统设计课程设计大纲(给学生)10-22
基于zigbee的课程设计06-15
基于arcgis的课程设计07-11
嵌入式毕业论文:嵌入式系统的应用06-19
基于fpga的交通灯设计07-23
嵌入式工程专业的就业前景06-20
基于利益相关者目标的高校绩效指标设计论文10-13
基于有效教学理论的信息化教学设计要素分析09-24