通用串行总线(universal serial bus,简称usb)是在1995年被提出来的,并由compaq,digital equipment corp(现属于compaq),ibm,intel,microsoft,nec和northern telecom等7家公司定义和推广。由于usb技术具有易于使用、热插拔、速度快、功耗低等特点,使得usb通信技术得到广泛应用。基于此,本文提出了一种基于ch372芯片的usb通信技术,可实现单片机与计算机之间的usb通讯。
1 ch372简介
usb接口芯片种类繁多,基本上可分为两类:一类是内带有cpu通用功能的usb接口芯片,另一类是内部不带集成cpu的纯粹的usb接口芯片。ch371、ch372、ch375芯片系列就是后者。本研究中,由于usb接口仅用于读写等数据传送功能,且数据处理及信号转换部分还需单片机控制,因此选用纯粹的usb接口芯片ch372与at89c52单片机配合实现。在单片机端,ch372具有8位数据总线和读、写、片选控制线以及中断输出,可以方便挂接到单片机/dsp/mcu/mpu等控制器的系统总线上;在计算机端,ch372的配套软件提供了简洁易用的操作接口,与本地端的单片机通信就如同读写文件一样便捷。
ch372芯片与普通的通用串口芯片相比有以下优点:
1)全速设备接口,兼容usb2.0,即插即用,外围元器件只需晶体和电容即可;
2)提供一对主端点和一对辅助端点,支持控制传输、批量传输、中断传输;
3)具有省事的内置固件模式和灵活的外部固件模式,内置固件模式下屏蔽了相关的usb协议,自动完成标准的usb枚举配置过程,完全不需要本地端控制器做任何处理,简化了单片机的固件编程;
4)通用windows驱动程序提供设备接口,通过dll提供api应用层接口;
5)通用的本地8位数据总线,4线控制:读选通、写选通、片选输入、中断输出;
6)主端点上传下传缓冲区各64字节,辅助端点上传下传缓冲区各8字节。
2 系统硬件电路设计
ch372芯片在本地端提供了通用的被动并行接口,包括:8位双向数据总线d7~d0、读选通输入引脚rd#、写选通输入引脚wr#、片选输入引脚cs#、中断输出引脚int#以及地址输入引脚a0。通过被动并行接口,ch372可以很方便地连接到各种8位单片机、dsp、mcu芯片上,并且可以与多个外围器件共存。基于ch372芯片的信息和参数。这里给出了ch372芯片单片机端的usb通讯电路,如图1所示。同时,该芯片可通过普通usb传输线实现与计算机的互通,图1中j1即为usb接头。
ch372芯片电路及pcb板设计需要注意的事项有:
1)为了降低电磁辐射,减少来自外界的干扰,pcb板的晶体y1的金属外壳接地;
2)为了降低对时钟信号的干扰,pcb设计时尽量不在晶体及振荡电容附近走线,尤其是不要走继电器、电动机等带有瞬时冲击电流的电源线和强信号线;
3)给usb插座单独供电,使usb设备刚插上时的电容充电过程不影响单片机和ch372:
4)在usb插座前串接限流电阻或电感;
5)pcb板布局要合理,电阻电容对齐,温度敏感的器件布置远离电源,板子要敷铜。
3 软件设计
ch372在计算机应用层与本地端单片机之间提供了端对端的连接,在这个基础上,usb接口可以选用单向数据流和请求加应答两种通讯方式。采用请求加应答的方式实现通信,都是由计算机主动请求,单片机被动应答完成数据传输。在程序编制过程中约定3种数据传输模式,通过计算机传输数据进行确定,分别是:
1)计算机下传数据01h,单片机上传存放数据的文件的参数;
2)计算机下传数据02h及8字节参数,8字节参数包括存放数据的地址、数据的数量,单片机通过调用相关子程序分析参数,并将相应的数据上传;
3)计算机下传数据03h,单片机执行关闭ch372的操作命令。
3.1 单片机端程序
在单片机端采用汇编语言编写程序,在程序设计过程中,考虑到系统的可靠性、稳定性以及调试过程直观性的需要,故采用汇编语言编写程序,程序流程如图2所示。
3.2 计算机端程序
ch372在计算机端提供了应用层接口,应用层接口是由ch372动态链接库dll提供的面向功能应用的api,所有api在调用后都有操作状态返回,但不一定有应答数据。ch372动态链接库提供的api包括:设备管理api、数据传输api、中断处理api。
在计算机端采用visual basic(vb)编写程序,利用visualbasic的该特性,调用ch372动态链接库dll提供的面向功能的应用api函数编写计算机端的应用程序,其工作流程如图3所示。
4 试验结果
本文自主研发的基于ch372的usb通信技术,设计约定了3种通信模式,下面仅介绍模式2(下传02h和8字节参数)下的通信调试过程,其调试通信步骤如下:
1)在计算机端安装了ch372的windows系统下的驱动ch372drv,安装后,上位机电路板可以像u盘一样在计算机上进行热插拔。
2)运行上位机板usb芯片的初始化程序后,计算机端设备管理器会跳出如图4的窗口,表示芯片工作正常,计算机和上位机板就可以采用请求加问答的方式进行通信。
3)计算机运行visual basic平台下的程序代码如下所示,向上位机发送数据02h和参数。
4)发送数据结束后,计算机跳出如图5反馈窗口,该窗口表示下传9个参数成功,单片机在接收到02h及相应的参数后,通过分析参数,确定要上传数据的存放地址、上传数据的个数,并通过ch372将数据上传至计算机。在计算机端,接收的数据放在预先设定的文件中,如图6所示,以备为计算机分析处理数据所调用。
5 结束语
本文研究了基于ch372的usb通讯技术,设计了采用ch372实现单片机与计算机连通的硬件电路,并自主开发了计算机端和单片机端的应用程序。试验表明在所设计的约定下,单片机与计算机很好地实现了数据通信,且该设计能够明显提高了系统数据传输速度,增强了数据传输的准确性和可靠性。
美国设立了第二个智能城市出行与交通枢纽
iOS 10.3正式版即将发布,但请不要盲目升级!
有没有办法像debug RTL代码一样将UVM中变量拉到波形上看呢?
照明出口倒V走势迈入“生死时速” 出口如何破局?
Merlin HugeCTR v4.3 发布说明
一种新型的USB通信技术研究
单片机教程十七:单片机的中断系统
刘烈宏:进一步发挥技术创新,推动形成网络安全产业的发展合力
什么是HFC? 经济实用的综合数字服务宽带网接入技术
2020年中国汽车动力电池组出货量及预测
传苹果A7处理器仍由三星代工 M7伴核更神秘
英特尔在以色列海法成立联合AI研究中心,有助于进一步推动AI创新
各种传感器工作原理分析
电动车ESD/EOS防护关键布局方案应用
大疆正式发布全新产品DJI FPV无人机
谷歌pixel xl怎么样,服务很棒但是颜值低而且太费电
健身房智能镜子有什么作用,它可带你玩转健身房
倒计时3天!合肥家电研讨会议程正式发布
华为预计到今年底全国各省都会有生产基地和产业链
薄膜瑕疵检测系统的具体特点是什么