当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]1 引言CH371是一种USB总线通用接口芯片。该芯片具有8位数据总线以及读、写、片选控制线和中断输出,可以方便地挂接到单片机、DSP、 MCU等控制器的系统总线上;在计算机系统

1 引言

CH371是一种USB总线通用接口芯片。该芯片具有8位数据总线以及读、写、片选控制线和中断输出,可以方便地挂接到单片机、DSP、 MCU等控制器的系统总线上;在计算机系统中,通过CH371的配套软件可提供简洁易用的操作接口,从而使其与本地端的单片机通讯就如同读写硬盘中的文件一样简单。由于CH371屏蔽了USB通讯中的所有协议,因而可在计算机应用层与本地端控制器之间提供端对端的连接。在不需要了解任何USB协议或者固件程序甚于驱动程序的情况下,就可轻松地将并口、串口产品升级到USB接口。

 

CH371的主要特点如下:

●屏蔽了USB协议,可在计算机应用层与本地端之间实现端对端的连接。

●具有单向数据流和请求加应答两种通讯模式,并支持伪中断。

●可自动完成USB配置过程,完全不需要本地端控制器作任何处理。

●采用标准的USB1.1接口,即插即用,D+引脚内置上接电阻。

●内置4个端点,支持USB的控制传输、批量传输、中断传输。

●带有通用Windows驱动程序,可提供设备级接口和应用层接口。

●具有通用本地8位数据总线,可用4线控制读选通、写选通、片选输入和中断输出。

●占用16个地址,可选择直接地址方式或者复用地址方式。

●内置输入输出缓冲区,能以中断方式通知本地端控制器传输数据。

●内置I2C主接口,因而应用层可以直接读写外挂的I2C从设备。

●在主控方式下可以提供16根据输入信号线或12根独立控制的输出信号线。

●内置上电复位电路,可提供高电平有效复位输出和低电平有效复位输出。

●内含可选的看门狗电路Watch-Dog,能为本地端控制器提供监控。

●具有DIP28、SOP28、DIP24、CHIP等多种封装形式。

2 引脚功能

CH371的引脚排列如图1所示,表1所列是其引脚功能。

表1 CH371的引脚功能

28脚封装

的引脚号24脚封装

的引脚号引脚名称类 型引 脚 说 明

2824VCC电源电源正端

129GND电源接地

1411XI输入晶体振荡输入端,带偏置电阻

1310XO输出晶体振荡反相输出端

107D+双向USB D+数据线,内置上拉电阻可控

118D-双向USB D-数据线

96OFF输入用于关闭D+上位电阻,高有效,带下拉

22151912D7D0双向8位双向数据总线,带上拉,可直接输入和独立控制输出

44RD输入读选通输入,低有效,带上拉,同时用于看门狗的清除输入

33WR输入写选通输入,低有效,带上拉

2723CS输入片选输入,低有效,带下拉

22ALE输入地址锁存使能,高有效,带上拉,在下降沿可锁存数据总线的复用地址

11INT输出中断输出,传输成功,低有效

585部分支持A3A0双向4位地址输入线,带上拉,可直接输入和独立控制输出

2421SCL输出I2C接口时钟线

2320SDA双向I2C接口数据线,开漏输出,带上拉

2522RST输出上电复位和看门狗复位,高有效

26不支持RST输出上电复位和看门狗复位,低有效

3 应用

3.1 与USB总线的连接

图2是CH371与USB总线的接口连接电路,CH371芯片可以直接使用USB总线的5V电源。电容C3和C4用于电源退耦;将电阻R1和R2串接在CH371与USB总线之间可进行阻抗匹配;晶振X1、电容C1和C2用于CH371芯片的时钟振荡电路。CH371芯片的SCL和SDA信号线可以直接连接I2C接口的从设备,如连接24COX器件以用来存储系统断电后不能丢失的重要数据,也可以存储身份识别数据、记费数据等,由于24COX中的数据只有计算机应用层才能够存取。

3.2 与单片机的接口电路

CH371芯片具有通用的被动并行接口,可以直接连接多种单片机、DSP和MCU。图3所示是CH371与MCS-51系列单片机的接口电路,CH371可通过D7~D0、RD、WR、CS、 ALE直接挂接到AT89C51的系统总线上。连接ALE而不连接A3~A0则采用复用地址方式,连接A3~A0而不连接ALE则采用直接地址方式。当采用复用地址方式时,CH371的A3~A0脚空闲,此时可以参考主控方式将A3~A0用于LED驱动或状态输入等;当采用直接地址方式时,应该将CH371芯片的ALE引脚悬空或者接高电平,然后通过A3~A0直接输入地址。该电路中,CH371可向 AT89C51提供上电复位信号RST。CH371的中断输出INT连接到U2的外部中断INTO,反相器U5用于简单的地址译码,SRAM器件 62256的地址为8000H-FFFFH,CH371的地址为0000H-7FFFH(实际只需要16个地址)。

 

3.3 主控方式应用

图4是CH371在主控方式下的应用电路。该电路实际是基于CH371的主控方式设计的8通道数据采集器。可以看出:包括CH371在内,该电路只用到了三个集成电路,并且不需要任何单片机、DSP、MCU等控制器。CH371芯片的双向引脚A3~A0应该设置为输出,其中A3用于以低电平启动模数转换,A2~A0用于选择采集通道,双向引脚D7~D0应该设置为输入,用于输入采集到的结果,CS、ALE用于输入采集状态。实际电路应该采用精确的参考电压,并添加辅助电路(如电源退耦电容等)。另外,也可以用自带多通道选择器的模数转换芯片来代替U6和U7,如8通道AD芯片MAX158等。

3.4 与单片机的接口程序

下面是U2(MCS-51单片机)与U1(CH371)的接口参考程序:

;* * * * * * * * * * * * * * * * * * * * *

;需要主程序定义的参数

;CH371_PAGE EQU 00H;CH371所在的页面地址,地址译码后自动片选

;CH371_SYSTEM EQU 02H;CH371系统功能设定寄存器的地址偏移

;CH371_CONFIG EQU 02H;CH371设备配置信息寄存器的地址偏移

;CH371_INT_SET EQU 06H;CH371中断数据设定寄存器的地址偏移

;CH371_STATUS EQU 06H;CH371传输状态信息寄存器的地址偏移

;CH371_LENGTH EQU 07H;CH371数据长度寄存器的地址偏移[!--empirenews.page--]

;CH371_BUFFER EQU 08H;CH371O数据缓冲区的起始地址偏移

;SAVE_STATUS DATA 29H;保存传输状态信息,根据需要可选

;SAVE_LENGTH DATA 2AH;当前数据缓冲区中的长度,用于保存下传长度

;SAVE_BUFFER DATA 30H;数据缓冲区,用于保存接收到的下传数据

;* * * * * * * * * * * * * * * * * * * * *

;初始化子程序

;USE:ACC,DPTR

CH371_INIT:MOV DPH,#CH371_PAGE

;CH371所在的页面地址,地址译码后自动片选MOV DPL,#CH371_LENGTH;CH371数据长度寄存器的地址偏移

图3

MOV A,#OFH

MOVX @DPTR,A;置上传数据长度寄存器为15,暂时没有数据上传

CLR A;尚未有数据下传

MOV SAVE_LENGTH,A;保存下传数据长度

SETB ITO;置外部信号为下降沿触发

CLR IEO;清中断标志

SETB PXO;置高优先级

SETB EXO;允许中断

RET

;上传数据子程序

;ENTRY:RO指向存放了准备上传数据的缓冲区,R7准备上传的数据长度0至8

;USE:ACC,B,R0,R7,DPTR

CH371_UPLOAD:MOV B,R7;将数据长度暂存到B中

MOV DPH,#CH371_PAGE;CH371所在的页面地址,地址译码后自动片选

MOV DPL,#CH371_BUFFER;CH371数据缓冲区的起始地址偏移

MOV A,R7;上传数据长度

JZ CH371_UPLOAD_O;数据长度为0则不必写入

CH371_UPLOAD_1:MOV A,@RO;读取一字节的数据

INC RO;指向下一个数据的地址

MOVX @DPTR,A;写到CH371的上传数据缓冲区

INC DPL

DJNZ R7,CH371_UPLOAD-1;继续读取上传数据直至结束

CH371_UPLOAD_0:MOV DPL,#CH371_LENGTH;CH371数据长度寄存器的地址偏移

MOV A,B

MOVX @DPTR,A;将本次数据的长度置入上传数据长度寄存器

RET

;中断服务子程序

;USE:堆栈6字节,工作寄存器组1的RO,R7

CH371_INTER:PUSH PSW;现场保护

CLR IEO;清中断标志,防止重复执行,对应于INTO中断

PUSH ACC

PUSH DPL

PUSH DPH

SETB RSO;PSW.3,切换至工作寄存器组1

MOV DPH,#CH371_PAGE;CH371所在的页面地址,地址译码后自动片选

MOV DPL,#CH371_STATUS;CH371传输状态信息寄存器的地址偏移

MOVX A,@DPTR;读取传输状态信息寄存器

MOV SAVE-STATUS,A;保存传输状态

MOV DPL,#CH371_LENGTH;CH371数据长度寄存器的地址偏移

JB ACC.0,CH371_INT_UP;传输状态信息寄存器位0为1,则指示上传完成

;是数据下传完成中断

MOVX A,@DPTR;读取下传数据长度寄存器

MOV SAVE_LENGTH,A;保持下传数据长度

JZ CH371_INT_RET ;下传数据长度为0,则直接退出中断

MOV DPL,#CH371_BUFFER;CH371数据缓冲区的起始地址偏移

MOV RO,#SAVE-BUFFER;单片机内部的数据缓冲区,用于存放下传数据

MOV R7,A ;用于读取数据的计数

CH371_INT_DOWN:MOVX A,@DPTR;读取一字节的下传数据

INC DPL ;指向下一个数据的地址

MOV @RO,A;保存到数据缓冲区

INC RO

DJNZ R7,CH371_INT_DOWN;继续读取下传数据直至结束

SJMP CH371_INT_RET ;接收完下传数据,退出中断

;是数据上传完成中断

CH371_INT_UP:MOV A,#0FH;15

MOVX @DPTR,A ;置上传数据长度寄存器为15,暂时没有后续数据

CH371_INT_RET: ;中断返回

POP DPH

POP DPL

POP ACC

POP PSW ;恢复寄存器并选择工作寄存器组0

RETI ;中断返回

;

;* * * * * * * * * * * * * * * * * * * * *

 

4 结束语

CH371芯片具有通用的被动并行接口,可以直接连接多种单片机、DSP、MCU等。可以预见,CH371将在USB产品设计中大显身手。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭