JournalofMianyangNormalUniversity2012Nov.,
Vol.31No.11基于51单片机的USB接口应用设计
郭
辛,陈
燕,杨
艳
(绵阳师范学院物理与电子工程学院,四川绵阳621000)
摘要:基于MCS-51单片机系统,以CH372芯片为核心,设计出了USB接口单元电路和驱动程序。并以
PC机为宿主机,通过USB接口,利用动态链接库技术完成了PC机与单片机系统间的传输测试。研究表明:在低于1Mbps速率下,能成功实现微机和单片机之间的数据交换,对于较高速率的传输方式,应采用更高效的驱动芯片或通信类专用单片机系统完成并实现微机和单片机之间的数据交换。
关键词:CH372芯片;USB接口;驱动程序
612x(2012)11-0037-04中图分类号:TP311.1文献标识码:A文章编号:1672-
0引言
USB通信方案将在控制领域显示越来越重要的作用和广随着USB接口技术在计算机上的广泛应用,
USB技术在PC机上的应用越来越广泛,阔的发展空间,并随着电子技术和计算机技术的飞速发展,传统的
USB技术在单片机系打印机接口已逐步被更为便捷的USB口所取代;而单片机由于自身功能局限,鼠标、
尤其在工业控制领域数据通信仍沿用传统的串口通讯方案。为了实现微统(SCM)中的使用受到了局限,
缩短上位机和下位机技术的差距,提升系统的兼容性,本文采用了AT89S52机和单片机之间的数据交换,
和通信芯片CH372开发了一个USB接口单元电路并编写了相关的驱动程序。经实验测试,在BR<100Kbps的低速传输条件下,数据传输效果良好。系统核心就是单片机控制器,它负责完成设备所有的控
USB接口芯片和其它输入输出模块作为单片机的外围部件挂接在系统总线上,制功能,所有器件在单片机
[1-3]
。该系统开发主要目的是解决利用常用的单片机系统实现USB数据传输功能,以的控制下协同工作
便为USB在工控领域的拓展应用打下坚实的基础。
1设计方案
实验系统主体由AT89S52和CH372以及维持它们正常工作必需的外围元件组成,上位主机能够单独完成设备的识别和配置,并实现数据通信功能。为验证设计原理的正确性,采用键盘输入信息方式,通过硬件接口电路和驱动软件的设计以实现SCM系统与PC机的通信,系统原理框图如图1所示:
Fig.1
图1系统原理框图
Functionaldiagramofsystem.
08-3009-24收稿日期:2012-回修日期:2012-作者简介:郭辛(1971-),男,讲师,硕士,主要研究方向:汽车电子控制技术。
第31卷绵阳师范学院学报(自然科学版)·38·
2硬件电路设计
51单片机最小系统和输入、系统硬件电路按功能由USB电气接口单元、输出测试电路构成。接口电
路核心器件采用USB总线的通用设备接口芯片CH372,该芯片具有8位数据总线和读、写、片选控制线以
CH372可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上;在计算机系统中,及中断输出,
的配套软件提供了简易的操作接口,与单片机的通讯就如同读写文件。CH372内置了USB通讯中的底层
[4,5]
。协议,只需调用进行数据交换的驱动程序模块,即可实现通信功能
USB电气接口是直接与USB总线打交道的。由于USB电缆上电信号传输的格式不是标准的数字逻辑芯片可以处理的,所以必须有一个部件把USB总线上的电信号转换为TTL信号。同时,接口电路还要负
包括识别同步字、帧解析、自动识别握手信号等。硬件电路设计部分责协调与主机之间通信的同步机制,
硬件原理图如图2所示。主要解决的问题就是电平信号的转换和各控制端口的设计,
图2MCS-51与CH372接口电路原理图
Fig.2SchematiccircuitdiagramofMCS-51andCH372
设计说明:
(1)电阻R2用于在电源断电后将电解电容C1中的电能及时释放掉,使VCC及时下降到0V,确保在下次通电时CH372能够可靠地上电复位。
(2)电容C4用于CH372内部电源节点退耦,电容C1和C3用于外部电源退耦,晶体Y2、电容C5和C2用
CH372芯片内置了电源上电复位电路,于CH372的时钟振荡电路,一般情况下,不需要外部提供复位。
(3)CH372芯片支持5V电源电压,在引脚VCC(20脚)和GND(18脚)之间可以接一个发光二极管,当电源给电路供电时起指示的作用。
(4)单片机P0口与CH372的D0-7口相连作为数据通道;P2.0和2.1口做CH372的选通控制;P3.2、P3.6和P3.7分别用于中断源和读写控制;
(5)在调试和测试实验中,4×4行列式键盘做数据系统硬件电路板采用外接2位数码管作输出显示,输入。由于硬件电路设计核心部分是CH372芯片与单片机系统的接口电路,故在系统原理图中将用于测
输出单元电路省去,仅保留MCS-51与驱动芯片的接口设计图。试的输入、
3
3.1
软件开发
驱动程序设计
对于主机与单片机的通信,使用相应的软件程序来实现,通过软件程序的调度,主机才可以得到端点
数据的传输。对于所有的USB单元设备来说,它们的应用都有同样的的启动过程:设备接入→总线复位→
[6-8]
。当USB总线设备连接到主机上时,枚举→数据接收和发送设备接收供电,等待总线复位。主机定期
[9-10]
。检测总线的状况,当发现有新的设备接入时,主机发送命令对其进行复位操作,设备进入枚举状态
主机发送一个后跟IN包的SETUP包,该包从地址0读取设备描述表,接收到设备描述表后,主机为设备分
·39·郭辛等:基于51单片机的USB接口应用设计第11期
配一个新的USB地址,开始主机与设备的通信。主机继续从设备描述中获取设备信息,从而得知设备支持的端点数,这样枚举过程就完成了。USB总线通过位于同主机上的客户软件相对应的缓存区和USB总线
[7-9]
。设备上的端点之间的通道来传送数据
USB接口芯片的初始化、USB总线设备请求处理及USB总线电源管理都是通过执行89S52单片机的
代码来完成的,
软件流程图如图3所示:图3程序流程图
Fig.3Flowchartofprogram.
3.2软件编程
SCM端的软件程序主要包括3个基本的过程:初始化、主函数、中断函数。
采用C51语言,KC7.0进行编程,
USB驱动程序主要包括如下几个主要部分:(1)CH372初始化子程序//CH372_Init(void);
(2)CH372的命令写入函数
//CH372_WR_CMD_PORT(UINT8cmd);(3)CH372的数据写入函数//CH372_WR_DAT_PORT(UINT8dat);(4)CH372的数据端口读出数据//CH372_RD_DAT_PORT(void);
(5)USB工作模式设置//CH372_WR_CMD_PORT(CMD_SET_USB_MODE);(6)测试连接函数//CH372_WR_CMD_PORT(CMD_CHECK_EXIST);
如测试CH372与单片机的物理连接是否正常以及是否正常工作的程序段如下:#ifdefTEST_CH372_FIRSTUINT8j;
第31卷绵阳师范学院学报(自然科学版)·40·
CH372_WR_CMD_PORT(CMD_CHECK_EXIST);//测试CH372是否正常CH372_WR_DAT_PORT(0x55);//写入测试数据,任意数据i=~0x55;//返回数据应该是测试数据取反/
if(CH372_RD_DAT_PORT()!=i){//CH372不正常for(i=80;i!=0;i--){
CH372_WR_CMD_PORT(CMD_RESET_ALL);//重复发命令,硬件复位CH372_RD_DAT_PORT();
}
CH372_WR_CMD_PORT(0);
for(i=250;i!=0;i--)for(j=100;j!=0;j--)Delay2us();//延时50mS}
#endif
4结论
本文主要针对微控制器与USB控制芯片间的接口的软硬件设计,该设计结果能满足PC机与单片机通
具有一定的实用性。设计主要实现了两方面的功能:一方面是正确且及时的响应主机的设信的基本要求,
备要求,另一方面是以特定传输方式正常地与主机交换数据。由于整个驱动程序所涉及的底层定义和数
通常的结构化编程思路已不能满足要求,为使程序便于调试、移植,采取了模块化的据传输协议较为复杂,
设计方案,并应用了C语言中大量的预处理技术优化了程序,也为从简单的SCM系统走向嵌入式开发迈出了探索的脚步。
但设计也存在着不足,主要体现在:(1)对于传输速率较高的情况,如U盘与单片机系统的进行数据交互时,数据传输的出现丢失现象;(2)程序移植性不强,软件设计主要以满足实验教学为目标,对单元模块的的封装和通用性设计方面考虑不足;(3)PC机的发送数据模块和单片机的接收数据模块之间的相互协调有待进一步改进,程序设计思想较为保守,在系统稳定性和效率的改进方面思考还有欠缺。参考文献:
[1]李朝青,M].北京:北京航空航天大学出版社,2007:10-50.刘艳玲,沈怡鳞.单片机与PC机网络通信技术[[2]DallasSemiconductor.DS18B20ProgrammableResolution1-WireDigitalThermometer[Z].2002.[3]罗红萍,J].机械工程与自动化,2005,3(7):70-72.彭云柯.基于VB的单片机与PC机串行通信程序设计[[4]张齐,——基于C语言编程[M].北京:电子工业出版社,2004.杜群贵.单片机应用系统设计技术—[5]周润景,M].北京:电子工业出版社,2006:15-160.袁伟亭,景晓松.Proteus在MCS-51&ARM7系统中的应用百例[[6]刘同法,M].北京:航空航天大学出版社,2007.陈忠平.单片机基础与最小系统实践开发[[7]廖济林.USB2.0应用系统开发实例精讲[M].北京:电子工业出版社,2006:10-90.[8]钟富昭,M].北京:人民邮电出版社,2007:20-80.张晨.8051单片机典型模块设计与应用[[9]孙育才,M].北京:清华大学出版社,2005:12-178.王容兴.孙华芳.ATMEL新型AT89S52系列单片机及其应用[[10]李彩,J].微计算机信息,2003,07:59-61.王安,刘勇.高速A/D转换器TLC5510的应用[
DesignofUSBConnectorBasedonApplyingMCS-51
GUOXin,CHENYan,YANGYan
(DepartmentofPhysicsandElectronicEngineering,MianyangNormalUniversity,Mianyang621000)Abstract:Inthispaper,theUSBconnectorcircuitdriverunitandthedriversoftwareweredesignedbyusingCH372chipasthekeycomponentbasedonMCS-51single-chipmicro-computer(SCM),andtheDynamicLinkLibrary(DLL)technology,completingthetestbetweenthehostmachineandSCMsystemthroughtheUSBconnector.Theresultsprovedthat,thehostdatacanbeexchangedunderthespeedrateof1Mbps,andthehighefficiencydriverchipandcommunicationalSCMsystemcouldbeusedfordataexchangeonceexceedingthelimit.
Keywords:CH372chip;USBconnector;driver
因篇幅问题不能全部显示,请点此查看更多更全内容