基于usb 的多串口测试系统软件设计

基于usb 的多串口测试系统软件设计

ID:27407229

大小:651.50 KB

页数:8页

时间:2018-12-03

基于usb 的多串口测试系统软件设计_第1页
基于usb 的多串口测试系统软件设计_第2页
基于usb 的多串口测试系统软件设计_第3页
基于usb 的多串口测试系统软件设计_第4页
基于usb 的多串口测试系统软件设计_第5页
资源描述:

《基于usb 的多串口测试系统软件设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于USB的多串口测试系统软件设计张志文1,刘美飞1,李剑作者简介:张志文(1957-),男,西安工业大学教授,主要研究方向为计算机测控技术、智能化仪器.E-mail:zhangzw@xatu.edu.com1,王剑2(1.西安工业大学电子信息工程学院,西安7100322.中国石油集团测井有限公司长庆事业部,西安710201)摘要:针对基于USB的多串口测试系统,旨在实现4个具有422接口的惯导组件的同时测试,提高整个测试系统的测试效率,并不产生数据丢失、混叠等情况。在综合分析测试需求的基础上,通过C语言编写USB控制芯片的固件程序以实现串口数据流帧头的检测及数据的接收与上传

2、,上位机采用多线程、定时器等技术实现数据的存储、处理及显示。实验表明上位机界面显示的数据与处理后的信号源数据一致,未丢失数据,实现了传输要求。关键词:CY7C68013A;多线程;多串口通信;VisualC++在现代先进战机中,惯导系统已成为导航、飞控和火控系统最核心的信息源,它的精度直接影响作战任务的完成与飞行安全。惯性组件(陀螺仪和加速度计)是整个惯导系统的核心元件,其精度直接影响整个系统的精度,而温度是影响惯性组件精度的主要因素之一。惯导系统只有在温度测试中达到预先规定的导航精度后才能应用于实际。在不同温度下的测试,是一个漫长而耗时的过程,而先前的测试系统只针对一套惯导

3、进行[1]。于是,能同时测试多套产品的测试系统应运而生以缩短其测试周期。改进后的测试系统,外围电路简单,只需采用少量的元器件来搭建,其关键部分为软件设计。1测试系统硬件组成文中被测产品是一种三轴惯导组件,陀螺仪和加速度计X、Y、Z轴方向上的信息,即正负轴的差值,通过422接口输出。文中的设计目标是实时接收4套惯导组件输出的串口信息,并上传和显示。其硬件平台由USB控制芯片CY7C68013A、串口通信芯片和串行EEPROM芯片搭建,硬件电路如图1所示,包括电压转换电路、串口通信电路和EEPROM电路。图1硬件电路框图Fig.1Blockdiagramofhardware2系统

4、软件设计本文的软件设计包括三个环节:EZ-USB芯片的固件程序、USB驱动程序和上位机应用程序三部分。2.1固件程序设计固件程序设计的目标就是辅助硬件完成USB通信任务,实现预期的设备功能。CY7C68013A芯片的固件程序主要负责处理上位机发来的各种USB设备请求,并控制与外围电路进行数据传输[2-4],其主要功能包括以下五点:(1)初始化工作。对与串口有关的特殊功能寄存器、全局状态变量等进行初始化的设置以实现所需的设备功能。(2)完成主机对设备的配置任务。包括对设备进行重新列举,即模拟设备的断开与重新连接;对接收到的设置包进行判断并完成主机设备请求。(3)响应中断。USB

5、接口在设备列举、响应主机标准请求和厂商请求、数据传送等过程中都会向CPU申请中断,因此CPU必须正确处理这些中断才能保证USB传输的正常进行。(4)传输数据。USB设备的主要任务就是进行数据的传输,因此固件程序中就必须包括对外围电路、外部FIFO的读写操作进行控制和对接收和发送数据的端点进行正确的配置的代码,才能完成数据的接收和发送。固件程序主要由以下三个文件fw.c,fsp.c和isr.c组成[5]。fw.c即为Cypress公司针对其EZ-USBFX2系列的USB芯片提供的框架程序,流程图如图2所示。框架程序实现了芯片初始化、USB标准设备请求以及挂起下的电源管理,该框架

6、程序不需添加任何代码,编译后产生的.HEX文件下载到芯片就能与主机进行基本的USB通信,只是不能完成用户特定的任务。图2框架程序流程图Fig.2Flowchartoftheframefsp.c包含设备初始化和串口初始化及各种主机请求响应函数的定义,完成了USB协议方面的通信,包括上电枚举,重枚举,唤醒以及调用用户程序和控制命令等[6]。设备初始化包括,配置好CY7C68013A内部的大容量端口EP2为IN端口,批量传输方式,1024字节,4倍缓冲,手动发送模式,此模式便于对固件程序的控制;串口0和串口1的波特时钟源为高速波特率发生器,默认优先级,即串口0优先级高于串口1,工作

7、方式为方式1,10位异步收发。用户程序即框架程序fw.c中的TD_Poll(),完成帧头的检测和数据的传输,流程图如图3,执行过程如下:(1)判断标志位f0与f1,当f0或f1为1时,执行相应的数据检测函数。当检测到Data0或Data1中的数据与发送的帧头相匹配,并之后的34个字节之和等于校验和时开始接收数据,分别放入数组buf0与buf1中,否则丢弃继续检测。(2)分别判断buf0、buf1中的数据是否满74字节,满74字节后在帧头分别添加标志字节0x30、0x31,以便上位机判断,并存入EP2FI

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。