您的位置 首页 编程

根据CH371的USB接口的虚拟示波器规划

一、引言对于学校教学实验以及某些特定需求来说,目前市场上的模拟及数字示波器也许并不适用,价格高昂、体积较大且很多专业功能并不实用。而现在电脑

一、导言

关于校园教育试验以及某些特定需求来说,现在市场上的模仿及数字示波器或许并不适用,价格昂扬、体积较大且许多专业功用并不有用。而现在电脑的遍及程度也达到了恰当的规划,运用电脑以及附加的数采模块完结一个灵敏快捷的虚拟示波器能够满意大多数的作业、学习和开发需求,而且能够经过较低价值的硬件和软件晋级完结恰当杂乱的信号处理功用,能够以较低的本钱、较小的体积完结装备灵敏的智能仪器组合;彻底能够与便携电脑结合,构成便携式检测修理作业站。现在已经有核算机并口通讯的数据收集器,可是USB的运用日趋广泛和深化,假如将USB功用交融在里边则能够完结更高的数据传输率、更便利的运用方法,更为优胜的体现出虚拟仪器的功用。

二、硬件规划

此虚拟示波器的数据收集器由以下功用模块组成:前端信号改换模块、高速模数转化模块、高速数据缓冲模块、单片机操控模块、USB接口模块和电源模块。前端信号改换、高速数据收集有老练的计划而且可依据需求的目标,比如采样率、量程操控、采样深度等进行规划,咱们这儿首要评论USB接口部分的开发。

USB接口的开发以往都是一个令人头痛的问题,虽然许多规划者神往USB接口高速传输、自主供电、即插即用的长处,但较难跨越它的协议固件开发和驱动程序开发的妨碍。在这个计划里,笔者选用了一款不需求开发协议固件和驱动程序的USB总线接口芯片。

南京沁恒公司(www.winchiphead.com)推出的CH371是一个USB总线的通用接口芯片,它运用硬件逻辑屏蔽了USB 通讯中的一切协议,在核算机运用层与本地端操控器之间供给端对端的衔接。依据CH371,规划者不需求了解任何USB协议、固件程序以及驱动程序,能够轻松地将本来的并口、串口的产品晋级到USB接口,以较低的危险和本钱享受USB接口带来的优胜性。

运用时在本地端,CH371具有8位数据总线和读、写、片选操控线以及中止输出,就像操作一般外设芯片相同便利地挂接到DSP、MCU等操控器的体系总线上;在核算机端,CH371的配套软件包含通用驱动程序以及运用软件包,供给了简练易用的操作接口,与本地端的单片机通讯就好像读写硬盘中的文件相同简略,开发者能够运用VB、VC、C++Builder等高档言语进行开发。一般状况下,依据CH371规划USB产品不用考虑USB通讯协议、固件程序、驱动程序、装备进程、底层数据传输进程。规划者所要做的作业与规划并口、串口的产品相同,包含两件事:一是从核算机的运用层宣布数据传输恳求并接纳应对;二是当USB 产品的操控器被告诉有数据传输恳求时,作出应对。

一起,CH371在供给了通明的USB协议的基础上还供给了I2C器材的直接办理、16个地址的直接读写以及复位、看门狗等功用,本地端甚至不运用单片机就可完结简略的操控功用,因而具有较强的功用适应性,能够满意不同场合的需求,有用的下降体系本钱。

在本体系中运用的是SOP28封装的产品,他的管脚界说如下表:

依据不同的作业方法,芯片的接口类型能够有以下几种:被迫并行接口、I2C主接口、主控方法接口。其间被迫并行接口是最常用的方法,它供给单片机与核算机的衔接,CH371作为单片机的一个被迫外设;I2C主接口是CH371在核算机端程序的操控下不经过单片机直接读写一个EEPROM器材(比如24C04等),常常用于USB外设的产品信息纪录;主控方法接口是不运用单片机,由核算机端程序直接操控CH371供给的16个地址的8位数据读写或者是十几根IO口线,此方法首要用于完结相对简略的外部操控使命。这几种接口方法并非彻底敌对的,能够依据需求灵敏装备。在此虚拟示波器中则将其运用为单片机的一个外设器材,一起将A3~A0用于主控方法由核算机操控四只LED。

单片机关于CH371的操控依托对其内部的16个寄存器的操作来完结。这16个寄存器的地址有两种界说方法。一种是上电复位后默以为直接地址方法,A3~A0四个管脚为寄存器地址,这种方法较为简略,可是需求运用单片机较多的IO口资源;另一种是当CH371检测到ALE脚上的上升沿信号后,切换到复用地址方法,寄存器地址由数据总线的D3~D0来操控,依据ALE的跳变来判别是寄存器操作仍是数据读写。在此规划中因为大容量数据缓冲需求运用到74373作为地址锁存,所以即便运用直接地址方法也无需多占用单片机资源,可是为了将A3~A0节约出来驱动LED所以选用复用地址方法。

依据体系的要求咱们规划硬件如下。

USB接口供给数据交换及电源供给(经恰当改换后供高速AD运用),CH371在12M晶振下倍频作业,供给与单片机接口的一起供给看门狗复位输出功用,I2C主控功用没有运用,A3~A0能够由核算操控驱动4只LED作为作业显现信号。单片机89C52的P1口组用于操控数据收集模块,包含量程转化操控、AD触发信号、收集数据溢出信号等;高速缓存62256经过低功耗的CPLD操控寄存高速AD收集的成果,单片机守时将其间数据读出经CH371传送到核算机的数据显现和剖析软件,完结虚拟示波器功用。单片机、CH371和RAM部分原理图如下:

图三 单片机、CH371和RAM部分原理图

三、软件规划

单片机端软件:

单片机端软件首要完结数据收集操控、数据陈述这两个功用。其间数据收集操控依据核算机端软件设定的增益、时基、触发等参数操控数据收集模块,这儿面要用到核算机向单片机发送少数的操控信息;数据陈述功用则需求单片机将缓存中的一个收集周期的一切数据传送给核算机端软件,这归于大批量数据的传输。咱们把介绍的要点放在单片机与核算机的通讯上面。

单片机与核算机通讯是经过对CH371的寄存器操作完结的,有关其寄存器界说的详细状况请参阅数据手册。

在运用中需求留意的是,CH371供给的单片机接纳缓冲区为8个字节,多于8个字节的核算机下传数据被切分;而单片机的发送缓冲区也是8个字节,多于8个字节的上传数据需求分屡次上传。别的,CH371的中止包含了上传及承受成功,中止发生后详细的状况需求由传输状况寄存器来区分;一起其间止电平是单稳态的,一个事情发生后中止信号跳变,但仅保持一个时间短的脉冲便康复,这是为了合作不同速度的处理器而作的处理。

单片机与核算机的USB通讯首要功用子程序示例如下:(请在运用时参加CH371的相应寄存器的地址界说)

file://********** CH371初始化程序******************************

void ch371_init()

{

CH371_INT_SET=0; file://CH371中止数据设定寄存器的地址偏移

CH371_LENGTH=0X0F; file://置上传数据长度寄存器为15,表明暂时没有数据上传

save_length=0; file://保存下传数据长度

IT0=1; file://外部信号为下降沿触发

IE0=0; file://清中止标志

PX0=1; file://置高优先级

EX0=1; file://答应中止

}

file://***********上传数据子程序********************************

void ch371_upload(unsigned char len) file://参数传入数据长度

{

unsigned char i;

unsigned char *up_buf;

unsigned char *ch371_buf;

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/145860.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部