嵌入式设计应用
随着U盘的普遍使用和USB技术的嵌入式系统应用,方便用户进行程序修改和程序的存储,PCR设计中采用可以热插拔的USB接口,即在PCR硬件系统中加入了USB主控芯片,使其能够对U盘等存储设备进行读写操作,从而实现数据的存储和转移。
1 USB系统的硬件设计
在数据采集系统中,USB的应用大体可以采用两种方案:一是直接采用集成USB设备接口的嵌入式微控制器;二是采用单独的控制器和独立的USB设备接口芯片。
为增强系统应用的灵活性,该方案采用瑞萨单片机M30627FJPGP,加上USB设备接口芯片搭建硬件系统,具有低成本、易移植的特点。设计中,USB 设备接口芯片采用CH375,涉及框图如图1所示。CH375是一款符合USB 2.0协议的USB总线通用接口芯片,支持主机(HOST)方式和设备(SLAVE)方式,并可以动态地切换主机和设备方式。
CH375芯片提供了通用的被动并行接口,包括:8位双向数据总线D0~D7、读选通输入引脚RD、写选通输入引脚WR、片选输入引脚CS、中断输出引脚 INT以及地址输入引脚A0。CH375以总线方式挂接在单片机数据总线上,并且与多个外围器件共存。单片机通过RD,WR高位地址译码产生片选CS和地址线P68(接CH375的A0引脚)的综合控制,完成与CH375的通信。外扩USB威廉希尔官方网站 如图2所示。
CH375芯片的RD和WR分别连接到单片机的读选通输出引脚和写选通输出引脚。CS由单片机的CS4选通。INT输出的中断请求是低电平有效,可以连接到单片机的外部中断上,单片机使用中断方式获知中断请求。
当CS375(即CS)为低电平时,单片机可以与CH375进行通信操作。此时,当WR为高电平,RD和P68都为低电平时,CH375中的数据通过 D0~D7输出;当RD为高电平且CS和WR及P68都为低电平时,D7~D0上的数据被写入CH375芯片中;当RD为高电平且CS和WR都为低电平而 A0为高电平时,D7~D0上的数据被作为命令码写入CH375芯片中。
CH375芯片的UD+和UD-引脚直接连接到USB总线上。CH375芯片内置了电源上电复位威廉希尔官方网站 ,并可以产生复位信号。为确保上电复位次序,系统设计中,单片机的复位信号是通过CH375产生的,并将单片机与CH375共同接到外部复位威廉希尔官方网站 上。
CH375芯片正常工作时需要外部为其提供12 MHz的时钟信号,在XI和XO引脚之间连接一个标称频率为12 MHz的晶体,并且分别为XI和XO引脚对地连接一个容量为30 pF的高频振荡电容。
CH375芯片支持5 V电源电压或者3.3 V电源电压。该系统使用5 V工作电压,并且V3引脚处外接容量为O.01 μF的电源退耦电容。
2 USB系统的软件设计
根据USB 2.O协议,在一个USB系统中,任何一次通信都是由USB主机发起的。USB设备根据主机发来的命令给予响应,执行相应的操作。在USB系统中,其软件包括以下几个部分:主机应用程序、设备驱动程序和设备固件程序。主机用于程序为用户提供设备应用的操作平台和交互界面,完成数据的处理和转换,向设备发出控制命令等。设备驱动程序是USB设备正常工作的基础,它提供了设备接人系统时要用到的引导文件、设备信息文件等。
2.1 动态链接库
系统应用中CH375提供了设备方式下标准驱动CH375WDM.INF和动态链接库 CH375DL L.DLL,通过加载驱动信息可以在应用程序中直接调用动态链接库。CH375在计算机端提供应用层接口。应用层接口是由CH375动态链接库DLL提供的面向功能应用的API,所有API在调用后都有操作状态返回,但不一定有应答数据。CH375动态链接库提供的API包括:设备管理API、数据传输 API、中断处理API。
设计中采用C语言作为计算机端应用软件的开发平台,首先需要将CH375的动态链接库、驱动程序添加到到编译环境中。动态链接库的使用,简化了USB设备开发的步骤,降低了开发难度,为系统调试节省了时间。
2.2 应用程序与设备间的通信
通过动态链接库的数据传输函数,CH375在与M30627FJPGP之间提供了端对端的连接。应用程序与设备固件间的通信采用请求加应答方式,该通信方式具有较好的交互性和可控性。请求加应答方式使用一个下传的主动请求和一个上传的被动应答进行交互式的双向数据通信,下传与上传一一对应,相互关联。所有的通信都由客户应用程序发起,然后以接收到M30627FJPGP的应答结束。
2.3 固件程序设计
CH375与M30627FJPGP之间设计成完全的中断驱动。当单片机处理前台任务时,USB的传输可在后台进行,这就确保了最佳的传输速率和更好的软件结构,同时简化了编程和调试。
后台ISR(中断服务程序)和前台主程序循环之间的数据交换可以通过事件标志和数据缓冲区来完成,其实现原理如图3所示。
应用中的单片机读写U盘软件可分成两大部分:应用程序和固件程序。应用程序完成系统的数据采集、处理任务、外围控制等功能,固件程序处理底层的USB通信协议、文件系统,完成数据在USB总线上的可靠传输和在U盘上的存取操作。为方便在不同控制器或应用系统上进行移植,固件采取积木式结构,如图4所示。
2.4 USB读写操作
USB读写操作可根据不同的系统要求设定执行程序。在PCR仪系统设计中,M30627FJPGP将通过-A/D通道采集到的数据向U盘内指定的文件: ADC_DATA.TXT追加数据。开机后,单片机向CH375写入配置字,设定其进入主控(Host)模式,进人数据采集状态,等待USB总线事件发生。U盘追加数据流程如图5所示。
3 USB在PCR嵌入式系统中的难点及解决方案
传统的USB主控体系结构是PC应用的一种理想的解决方案,而在PCR嵌入式系统中很难实现,具体表现在:
(1)嵌入式系统具有的系统资源容量和能力有限;
(2)嵌入式应用一般要对实时事件做出及时的响应。把USB固件添加到系统中,就会增加复杂性,导致在实时应用的设计和调试中出现更多中断和实时事件;
(3)嵌入式市场具有种类繁多的处理器和实时操作系统。将USB固件开发和移植到任何特定处理器/实时操作系统平台的努力都将花费大量时间,而且需要工作人员在USB技术上具有很高的专业技能。
克服嵌入式装置中USB主控设计的复杂性问题,其方法之一是把与USB即插即用能力相关的智能揉入USB主端控制器本身之中。要做到这一点,所采取的办法是:
把USB主控栈和器件驱动的共用组件嵌入到USB控制器硬件中;
将USB主控功能压缩到语族与ANSI C兼容的API中,而这些API被系统用来获取USB主控制器中的USB主控功能。
这种设计方法可以带来一个无需系统处理器干预,就能处理USB主控活动的USB主控制器。它不仅让系统资源的消耗降至最低,而且也将通过系统总线的USB 数据流减至最小。API的设计将简单易行,并且独立于处理器和实时操作系统,从而有效地降低了API集移植和集成的难度。
4 结 语
PCR仪系统的设计,实现USB总线在嵌入式系统中的基本应用模式。PCR仪中USB主机的实现方法,体现了USB存储设备的灵活性和方便性,USB系统嵌入到PCR仪中方便了用户的操作,提高了PCR仪的工作效率和仪器的可用性。
全部0条评论
快来发表一下你的评论吧 !