基于80C51单片机,编写电子时钟,要求有电路图、PCB图和代码(C语言或者VB)
你好,请问基于80C51单片机,编写电子时钟,要求有电路图、PCB图和代码(C语言或者VB),包括的物品有最小系统,万能板,微动开关,DS1302时钟,纽扣电池,4位数码...
你好,请问基于80C51单片机,编写电子时钟,要求有电路图、PCB图和代码(C语言或者VB),包括的物品有最小系统,万能板,微动开关,DS1302时钟,纽扣电池,4位数码管。谢谢了,帮帮忙。发我邮箱,
展开
5个回答
展开全部
我翻箱倒柜找了好久才找到这个,简直是古董了。
现在不好找51的了,都是AVR
MSP430
OR
STM32的了
已经发到你的邮箱了
我的邮箱是
1983695438@qq.com
现在不好找51的了,都是AVR
MSP430
OR
STM32的了
已经发到你的邮箱了
我的邮箱是
1983695438@qq.com
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个课程设计,复制粘贴的字数还真多,这个网上搜搜就有很多的,我也没有现成的,去单片机论坛也找找,那里资源多。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
又是课程设计
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.2 RS485接口与RS-422接口比较:
RS485接口是在RS-422接口基础上发展而来的,它们有许多电气规定相似如同样采用平衡电压传输方式,传输电缆终端都需要接终结电阻等。但RS-485接口总线能力与RS-422接口不同。传输线可以采用两线或四线方式,两线方式连接可实现真正的多点双向通信,而采用四线方式连接时,与RS-422接口一样只能实现一点对多点的双向通信,即只能有一个主设备,其余均为从设备。但无论四线还是两线连接方式下,RS485接口总线上均可连接最多128个设备。RS-485接口与RS-422接口的不同还在于其共模输出电压不同。RS-485接口的共模输出电压是一7V至+12V之间,而RS-422接口的共模输出电压在一7V至+7V之间。另外RS-485接口斋要2个终结电阻,这一点也与RS422接口不同。
1.2.1 RS-485标准优点
(1)通常标准接口的电气特性,都有满足可靠传输具有相关性,适当的降低通信速度,可以提高通信距离,反之亦然,例如:采用RS-232C标准进行单向数据传输时,最大数据传输速率为20kbitPs,最大传送距离为15m,若改用RS-485标准时,最大传输速率可达10MbitPs,最大传送距离为300m,降低数据传输速率,可传送距离可达到1200m。
(2)抗干扰能力
通常选择的标准接口,在保证不超过其使用范围时都有一定的抗干扰能力,以保证可靠的信号传输,但在一些工业测控系统,通信环境往往十分恶劣,因此在通信接口标准选择时要充分注意其抗干扰能力,并采取必要的抗干扰措施"例如长距离传输时使用RS-422标准能有效的抑制共模信号干扰,使用20mA电流环技术,能大大降低对噪声的敏感程度"在高噪声污染环境中,通过使用光纤介质网络"减少噪声干扰,通过光电隔离提高通信系统的安全性等都是一些行之有效的方法。
(3)RS-232C与RS-422,RS-485性能参数比较
在RS-232连接的串行通信系统中实际上只用到RXDTXD和地,在本设计中用到RS-232C,RS-485标准,RS-485标准是一种多发送器的电路标准,它扩展了RS-422A的性能,允许双导线上一个发送驱动32个负载设备,负载设备可以是被动发送器!接收器或收发器"RS-485标准没有规定在何时控制发送器发送或接收机接收数据的规则,电缆选择比RS-485更严格"对驱动器和接收器规定了双端电气接口形式,把电位差转变成逻辑电平,实现终端的信息接收".
采用RS-485最大的优点在于它的多点总线互连功能,它可以连接一台主机和多台终端同时通信,由于它是半双工的,同时只能有一方发送,一方接收,而且它采用差动电平接收的方法来提高抗干扰能力,适合在比较恶劣的环境下工作,因为在同一对电缆中所受到的干扰是很类似的,采用差动方法可以用作差的方法将干扰抵销一大部分。
由于RS-485通信是一种半双工通信,发送和接收共用同一物理信道"在任意时刻只允许一台单机处于发送状态"因此要求应答的单机必须在监听到总线上呼叫信号已经发送完毕,并且没有其它单机发出应答信号的情况下,才能应答"半双工通信对主机和从机的发送和接收时序有严格的要求"如果在时序上配合不好,就会发生总线冲突,使整个系统的通信瘫痪,无法正常工作"要做到总线上的设备在时序上的严格配合,必须要遵从以下几项原则:
(1)复位时,主从机都应该处于接收状态PRE和DE端相连为低时,从机处于接收状态,在上电复位时,由于硬件电路稳定需要一定的时间,并且单片机各端口复位后处于高电平状态,这样就会使总线上各个分机处于发送状态,加上上电时各电路的不稳定,可能向总线发送信息"因此,如果用一根口线作发送和接收控制信号,应该将口线反向后接入MAX485的控制端,使上电时MAX485处于接收状态.
(2)控制端RE,DE的信号要求
在RS-232,RS-422等全双工通讯过程中,发送和接收信号分别在不同的物理链路上传输,发送端始终为发送端,接收端始终为接收端,不存在发送!接收控制信号切换问题"在RS-485半双工通信中,由于MAX485的发送和接收都由同一器件完成,并且发送和接收使用同一物理链路,必须对控制信号进行切换"控制信号何时为高电平,何时为低电平,一般以单片机的TI,RI信号作参考"发送时,检测TI是否建立起来,当TI为高电平后关闭发送功能转为接收功能;接收时,检测RI是否建立起来,当RI为高电平后,接收完毕,又可以转为发送.
(3)发送控制信号在时序上的要求
总线上所连接的各单机的发送控制信号在时序上完全隔开"为了保证发送和接收信号的完整和正确,避免总线上信号的碰撞,对总线的使用权必须进行分配才能避免竞争,连接到总线上的单机,其发送控制信号在时间上要完全隔离"总之,发送和接收控制信号应该足够宽,以保证完整地接收一帧数据,任意两个单机的发送控制信号在时间上完全分开避免总线争端。
第二章总体设计方案
第三章 硬件设计电路
为更清楚表达系统设计中的详细过程,以下对较多采用的芯片如单片机AT89C51,MAX 485芯片74LB14, CH371、带串行EEPROM的可编程看门狗定时器等做简要介绍。
3.1 RS-485标准及接口芯片
MAX485是一种差分平衡型收发器芯片,包含一个驱动器和一个接收器,采用单+5V电源供电,专用于TTL协议(即通用于各种CPU的通信协议)与485协议间的转换.
MAX485芯片由8个管脚组成,其功能如下
1)RO脚(接收器输出端):若A比B大200mV,RO为高;若A比B小200mV,RO为低。
2)/RE脚(接收器输出使能端):PRE为低时,RO有效;PRE为高时,RO成高阻状态.
3)DE脚(驱动器输出使能端):若DE为高,驱动输出A和B有效;若DE为低,它们成高阻状态,若驱动器输出有效,器件作为线驱动器用;若为高阻状态时,PRE为低,它们作线接收器用。
4)DI脚:(驱动器输入):DI为低,将迫使输出Y为低,Z为高;若DI为高,将迫使输出Y为高,Z为低。
5)GND脚:接地
6)B脚:反相接收器输入和反相驱动器输出
7)A脚:同相接收器输入和同相驱动器输出
8)Vcc:电源正极4.75~5.25V.RS2485最大的优点在于它的多点总线互连功能,它可以连接1台主机和多台终端同时通信,由于它是半双工的方式,只能有一方发送,一方接收,而且它采用差动电平接收的方法提高抗干扰能力,适合在比较恶劣的环境下工作。
MAX485为8引脚封装,RO与89C51的RXD相连,DI与89C51的TXD相连,/RE作为接收器输出使能端,DE作为驱动器输出使能端,这两个引脚用一个控制脚进行控制,在切换器主机中使用P1.7进行控制,在键盘从机中使用P1.0进行控制,进行半双工通讯"主机部分MAX485的输出端A!B与各从机部分MAX485的输出端A!B通过双绞线连在一起。在多机通讯系统中,多个驱动器和接收器可共享一共用传输线,对于MAX485网络而言,网络上最多可挂32个站,传输距离可达1.2Km。
3.2单片机-----AT89C51的功能及芯片介绍
AT89C51是一种低功耗高性能的8位单片机,片内带有一个4K字节 的Flash可编擦除只读存储器(RF}ROM ),它采用了CMOS工艺和高密度非易失性存储器(NURAM)技术,而且其输出引脚和指令系统与MCU-51系列单片机兼容。片内Flash存储器允许在系统内可改编程序或用常规的非易失性的存储器编程器来编程。主要用在工业控制方面。其中央处理器由ALU,专用寄存器组,定时控制部件等组成,具有较强的调用、跳转、判断、丰富的数据传输功能,以及提供存放中间结果、常用参数寄存器等功能。它可以扩展64K字节程序ROM,外部数据存储器或接口地址64K字节。同时它具有5个中断,包括两个外部中断,两个定时器中断,一个串行口中断。
综上所述AT89C51是功能强大的MCU,适用于本系统设计的需要。
下面就设计中使用到的AT89C51的各功能模块分别简单介绍。
3.2.1 AT89C51方框图如下所示:
单片机是整个控制系统的核心,他的性能直接决定整个系统的性能。从整个系统的要求和经济方面考虑,我门选用了ATMEL公司生产的8位单片AT98C51单片机,他兼顾指令系统的需要,他可作为系统的外部扩展,内部还有电可擦除只读存储器,大大方便初学者。
3.2.2 AT89C51的特性:
1. 与MCS—51的产品兼容。
2. 是具有4Kbyte可重复编程的内容,可写入/擦除1000次以上,数拒保存10年以上。
3. 操作频率:0HZ—24MHZ。
4. 三层可编程的存储器上锁。
5. 128*8位内部RAM。
6. 32可编程I/O线。
7. 两组16位定时器/计数器。
8. 5个中断源。
9. 可编程的串行通道。功耗的闲置和掉电模式。
10. 片内振荡器和时钟电路。
二. 引脚功能
AT89C51单片机采用40引脚双列直插封装(DIP—40)。其引脚图如下:
下面分别对AT89C51引脚功能:
1.电源引脚:
VCC(40 脚):主电源+5v,正常操作和对EEPROM编程及验证时均接+5v 电源。GND(20 脚):接地。
2.外接晶振引脚XTAL1和XTAL2
XTAL1 (19 脚):反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2 (18 脚):来自反向振荡器的输出
3.控制信号引脚RST .ALE/PROG. PSEN 和EA/VPP。
RST(9 脚):单片机复位引脚,刚接上电源时,其内部各寄存器处于随机状态,在引脚上输入两个机器周期(既24个振荡周期)的高电平将史单片机复位。
ALE/PROG(30 脚):地址锁存/编程脉冲输入引脚,他访问片外寄存器时,ALE端仍以时钟频率1/6周期性地输出正脉冲信号。因此,他可以用作对外输出的时钟。或用于定时目的。当访问片外数拒存储器时,将跳过一输出个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX, MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。ALE端可以驱动(吸收还输出电流)8个LSTTL(低功耗高速TTL)输出。在FLASH编程期间,此引脚用于输入编程脉冲。
PSEN(29J 脚):输出访问片外程序存储器的读选通信号。CPU在由片外程序存储器取指令(或常用)期间,每个机器周期两次有效。每当访问片外数拒存储器时,这两次有效的PSEN信号将不会出现。PSEN端同样可驱动(吸收或输出电流)8个LSTTL负载。
EA/VPP(31 脚):程序存储器访问标志/编程电压输入,当输入高电平时,CPU可访问片内4KB的地址范围的程序存储器。若PC值超出4KB地址时,将自动转向访问片外程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源。
4.输入/输出引脚 P0. P1. P2. P3.
P0.0—P0.7(39—32 脚):P0口是一个8位漏极开路双向端口。在访问片外存储器时,他分别做为8位地址线和8位双向数拒总线用。在编程时,有P0口输入指令字节:而在验证程序时,则输出指令字节。验证程序时,要求外接上拉电阻。P0能以吸收电流的方式驱动8LSTTL负载。当P0口的管脚第一次被写如1时,被定义为高电阻输入。P0能够用于外部程序数拒存储器,他可以被定义为数拒/地址的第八位。在FLASH编程时,P0作为原码输入口。当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1.0—P1.7 (1—8 脚):P1是一个内部带上拉电阻的8位双向I/O口。在访问外部存储时,由输入低8位地址。P1能可以驱动(吸收或输出电流)4个LSTTL负载,P1口管脚写入1后,被内部上拉为高,可用做输入,P1口被外不下拉为低电平时,将输出电流,着是由于内部上拉的饿缘故。在FLASH编程和效验时,P1口作为第八位地址接收。
P2.0—P2.7 (21—28 脚): P2是一个内部带上拉电阻的8位双向I/O口。在访问外部存储时,由输入高8位地址。P2能可以驱动4个LSTTL负载,当P2口用于外部程序存储器或16位地址外部数拒存储器进行存储时,P2口输出地址是高8位。在给地址“1”时,他利用外部上拉优势,当对外布八位地址数拒存储进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和效验时接受高8位地址信号和控制信号。
P3.0—P3.7 (10—17 脚):P3也是一个内部带上拉电阻的8位双向I/O口。当P3口写入“1”后,他门被内部上拉为高电平,并用做输入。作为输入,有于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。AT89C51单片机是高性能单片机,因受到引脚数目的限制,所以P3口引脚具有第二功能。如图所示见下表能驱动4个LSTTL负载。
口线
第二功能
P3.0口
RXD(串行口输入)
P3.1口
TXD(串行口输出)
P3.2口
/INT0(外部中断输入)
P3.3口
/INT1(外部中断输出)
P3.4口
T0(定时器0的外部输入)
P3.5口
T1(定时器0的外部输入)
P3.6口
/WR(片内数拒存储写选通)
P3.7口
/RD(片内数拒存储写选通)
3.3 AT89C51组成的最小系统介绍
单片机AT89C51最小系统是由复位电路和振荡电路组成。
3.3.1.复位电路
复位是使和系统中其他部件都处于有个确定的初始态,并从这个状态开是工作。在振荡器正在运行情况下,复位是靠在RERST引脚步出现高电平后的第二个周期执行内部复位,以后每个周期重复一次,直至RET变低。
复位时,将ALE和/PSEN置位输入状态,既SLE=1和PSEN=1。片内RAM不受复位影响,复位后PC指向0000H单元,单片机从开始地址0000H单元开始执行程序。所以当单片机运行出错或进入死循环时,可按复位键重新启动。本系统所使用的复位电路如下图:
3.3.2.振荡电路
MCS-51的时钟电路可以有两种方式产生,一种是内部方式,利用芯片内部的振荡电路:另一种方式是外部方式。由于MCS-51有HMOS和CHMOS型,他门的时钟电路有一定的区别,这里紧介绍通常使用的HMOS型的时钟电路。
XTAL1和XTAL2分别为反向放大的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。由于输入至内部时钟信号要通过一个二分频触发器。因此对外部时钟信号的脉冲无任何要求,但必须保证脉冲的高低电平要求的宽度。
内部时钟方式:MCS-51内部有一个用于够成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端,这个放大器作为反馈元件的外部晶体或陶瓷谐振荡器一起够成一个自激振荡器。MCS-51虽然有内部振荡电路,但要形成时钟,必须外接元件,外接晶体以及电容CX1和CX2构成的并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格要求,但电容的大小会影响振荡器频率的高低,振荡器的稳定性,起振的快性和温度的稳定性。晶体可在1.2MHZ—12MHZ之间任选,电容CX1和CX2的典型值在20PF—100PF之间选择,但在60PF—70PF时振荡器有较高的频率稳定性,典型值通常选择为30PF左右(这时对应的时钟频率为12MHZ)外接陶瓷谐振器时,CX1和CX2的典型值约为47PF。在设计印刷电路板时,晶体或陶瓷振荡器和电容应进可能安装的与单片机芯片靠近,以及减少寄生电容,更好的保证振荡器稳定和可靠的工作。为了提高温度的稳定性,应采用温度性能好的高频电容。
外部时钟方式:外部时钟方式是利用外部振荡器信号源(时钟源)直接接入XTAL1和XTAL2。通常XTAL1接地,XTAL2接外部时钟,由于XTAL的逻辑电平不是TTL的,故建议外接一个4.7K-10K上拉电阻。
振荡电路是单片机工作的前提,只有晶振能可靠的起振,单片机引脚按规定的时序进行工作。本次设计所采用的是内部时钟方式:振荡电路是单片机工作的前提,单片机各个引脚才能按规定的时序进行工作。本系统采用的晶振为12MHZ.其电路如下图
AT89C51是一种带4字节可编程可擦除只读存储器的低电平,高性能CMOS 8位微处理器,俗称单片机。该器件采用ATEML高密度非易失存储器制造技术制造,与工业标准的MCS51指令集合输出管脚相兼容。处于将多功能8位CPU和闪烁存储组合在单个芯片中ATEML的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
整个ROM阵列三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦除操作中,代码阵列全被写成“1”且在任何非空存储字节被重复编程以前,该操作必须执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下。CPU停止工作。但RAM,定时器,计数器,串行口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所有其他芯片功能,直到下一个硬件复位为止。
3.3.3 串行I/0口
AT89C51还有一个可编程的、全双工的串行I/O口,可以作为UART(通用异步接收/发送器),也可以作为同步移位寄存器用。AT89C51的串行I/O设有缓冲寄存器SBUF,是能够直接寻址的SFR,在物理上对应着两个缓冲寄存器:接收和发送缓冲寄存器。接收器是双缓冲器,可避免在接收下一帧数据前,未能及时把接收到的数取走而产生数据重叠。它的串行I/O口有四种工作方式供选择。
方式0用同步的方式串行输出或输入数据,但并非真正的同步通信方式,在此方式下,串行口相当于一个并入串出或串入并出的移位寄存器。由TXD引脚发送出同步移位脉冲,由RXD引脚送出或接收串行数据。串行数据形式是8位数据,同步脉冲的宽度也是固定的,为单片机时钟频率的1/12,等于AT89C51的一个机器周期。
方式1异步接收发送方式,此方式为经常使用的工作方式串行数据位由TXD引脚传送出去,由RXD引脚将对方发来的串行数据位接收进来。至于传输的波特率是由定时器决定,设置不同的定时器初始值可以得到不同的波特率。通信双方应约定使用相同的波特率。
方式2 11位异步接收发送方式,与方式1相比不同的是方式2字符格式的最后可以插入第9位数据位,可以用一些指令将这一位设置为奇偶校验位等。其波特率有两种选择,分别为单片机时钟频率的1/32和1/64.
方式3 11位异步接收发送方式,其字符格式和方式2相同,波特率受定时器控制(设置不同的定时器初始值可以得到不同的波特率),并和电源控制寄存器中的SMOD位有关。
串行波特率的设定是串行接口应用中最重要的一步,如果不能合理设置,通信则无法正常进行。对于方式0,波特率是固定的,发送的同步脉冲的频率为单片机时钟频率的1/12,即fosc/12:对于方式2,波特率有两种可供选择,即fosc/32和 fosc/64.对应于公式:
中的SMOD为PCON寄存器中的控制位。
对于方式1和方式3,波特率都由定时器1的滋出率来决定,而在串行通信时,定时器经常采用定时器方式2,即8位重装计数方式,对应于公式:
3.3.4 AT89C51内部定时/计数器
51系列单片机内部都带有定时/计数器,AT89C51内部有两个16位的定时/计数器:TO和T1。与一般的定时/计数器类似,主要有以下特点:
第一:定时/计数可有多种工作方式,可以是计数方式也可以是定时方式等;
第二:计数器模值是可变的,其最大值取决于计数器的位数,该位数同时限定了定时的最大值;
第三:可以计算由TO或T1引脚的输入脉冲数,用作计数器或频率计。
这两个定时/计数器都有4种工作方式
,
见表a定时/计数器表
工作方式
功能
工作方式1
13位计算器
工作方式2
16位计算器
工作方式3
可自动装入记数初值8位重装计数器
工作方式4
T0分为两个计数器,T1停止计数器
在方式3中计数器Tl停止计数时,计数器TO分为两个独立的8立计数器,由TLO和THO来负责计数工作。
AT89C51的定时/计数器是可编程的,因此,在进行定时或计数之前也要用程序进行初始化。在初始化的过程中,要置入定时值或计数值狗初值,为计算此值就要从计数最大值倒退回去一个计数模值才是应置入的初值。设计数器的最大值为M,计数器的初值设定由下面公式算得:
计数方式时:
X=M一计数模值·
之时方式时:
(M一X)}T=定时值
可以X=M一定时值产,其高8位为寄存器TH1的初值,低8位为TLO沟初值。其中T为计数周期,它是单片机时钟周期的12倍。
3.3.5 AT89C51中断
AT89C51有五个中断源,即两个外部中断,两个定时/计数器中断和一个串行口中断。当某种中断源产生中断时,便设定在SFR中的中断示志位一一TCON中的各位,MCU在从标志位识别出中断种类并响应和请时,立刻从主程序转去执行中断服务子程序以进行中断服务,并呆护现场。关键就在于确定中断服务程序的入口地址。表给出了中断的向量地址,即是中断服务程序的入口地址 表b中断的向量表
中断源
工作标志
向量地址
外部中断0
IE0
03H
定时/计数器0
TF0
0BH
外部中断1
IE1
13H
定时/计数器
TF1
1BH
串行断口接收
TI
23H
串行断口发送
RI
23H
中断程序结束之后恢复程序运行环境,回到断点处继续执行程序。在应用时应注意中断的嵌套,防止中断溢出。
第四章 USB数据通讯介绍
USB接口可以有很多方法完成,如可以使用专用的USB接口芯片,也可以用带有USB接口的单片机或直接用FPGA来完成USB接口。但由于USB接口的设计必须考虑USB通讯协议、驱动程序、自动配置过程等,增加了它的开发难度。本文介绍了一种USB总线通用接口芯片CH371,基于CH371套件设计USB接口不必考虑USB通讯协议、驱动程序、自动配置过程、底层数据传输过程等,简化了USB接口的设计。
4.1 CH371简介
CH371套件包括CH371芯片和计算机端的CH371通用驱动程序.CH371芯片以硬件逻辑而不是额外编写的固件程序实现了USB通讯协议,驱动程序则通过软件向计算机应用层提供了设备级接口以及应用层接口。CH371套件屏蔽了USB 通讯中的相关协议和驱动程序,在计算机应用层与本地端控制器之间提供端对端的接。它具有以下特点:
① 屏蔽USB 协议,在计算机应用层与本地端之间提供端对端的连接。
② 自动完成USB配置过程,完全不需要本地端控制器作任何处理。
③ 标准的USB V1.1接口,即插即用,D+引脚内置上拉电
④ 通用Windows驱动程序。提供设备级接口和应用层接口。
⑤内置可选的看门狗电路Watch—Dog,为本地端控制器提供监控。
⑥内置输入输出缓冲区,以中断方式通知本地端控制器传输数据.
⑦ 内置上电复位,提供高电平有效复位输出和低电平有效复位输出。
⑧ 具有16个地址,可选直接地址方式或者复用地址方式。上电复位后,CH371芯片默认选择直接地址方式,即由A3~A0引脚输入地址直接作为内部地址:当ALE引脚检测到上升沿后,CH371芯片自动切换为复用地址方式,即控制器将地址输出到数据总线的D3~DO上,由CH371芯片在ALE的下降沿将其锁存为内部地址。一般情况下,基于CH371实现MCU与PC之间的USB通信需要完成两件事情:一是当上位机端发出数据传输请求时,CH371接收下传数据并以中断方式通知下位机接收。将下传数据写入下位机端数据缓冲区中;二是当下位机端有数据需要上传时,CH371接收上传数据并在成功接收后以中断方式通知下位机端数据上传成功。
4.2 CH371的功能和使用简介
CH371 USB接口芯片是一种利用硬件逻辑封装了USB通信协议的28脚芯片。为方便使用,同时提供了配套的Pc机USB口驱动软件。图l是CH371的引脚功能图。由图l可见
CH371的引脚功能
1脚: INT#中断输入
ALE 地址锁存使能(输入)
WR# 写选通(输入)
RD# 读选通(输入)
A0-A3 片内寄存器寻址地输入)
OFF 关闭D+上拉电阻(输入)
D+、D-USB 数据线(双向)
XI、Xo 晶振连接
D0- D7 数据总线(双向)
SDAI=C 接口数据线(双向)
SCL I℃ 接口时钟线(输出)
RST,RST# 上电复看门狗复位(输出)
CS# 片选线(输入)
VCC、GND 电源与地线
RS485接口是在RS-422接口基础上发展而来的,它们有许多电气规定相似如同样采用平衡电压传输方式,传输电缆终端都需要接终结电阻等。但RS-485接口总线能力与RS-422接口不同。传输线可以采用两线或四线方式,两线方式连接可实现真正的多点双向通信,而采用四线方式连接时,与RS-422接口一样只能实现一点对多点的双向通信,即只能有一个主设备,其余均为从设备。但无论四线还是两线连接方式下,RS485接口总线上均可连接最多128个设备。RS-485接口与RS-422接口的不同还在于其共模输出电压不同。RS-485接口的共模输出电压是一7V至+12V之间,而RS-422接口的共模输出电压在一7V至+7V之间。另外RS-485接口斋要2个终结电阻,这一点也与RS422接口不同。
1.2.1 RS-485标准优点
(1)通常标准接口的电气特性,都有满足可靠传输具有相关性,适当的降低通信速度,可以提高通信距离,反之亦然,例如:采用RS-232C标准进行单向数据传输时,最大数据传输速率为20kbitPs,最大传送距离为15m,若改用RS-485标准时,最大传输速率可达10MbitPs,最大传送距离为300m,降低数据传输速率,可传送距离可达到1200m。
(2)抗干扰能力
通常选择的标准接口,在保证不超过其使用范围时都有一定的抗干扰能力,以保证可靠的信号传输,但在一些工业测控系统,通信环境往往十分恶劣,因此在通信接口标准选择时要充分注意其抗干扰能力,并采取必要的抗干扰措施"例如长距离传输时使用RS-422标准能有效的抑制共模信号干扰,使用20mA电流环技术,能大大降低对噪声的敏感程度"在高噪声污染环境中,通过使用光纤介质网络"减少噪声干扰,通过光电隔离提高通信系统的安全性等都是一些行之有效的方法。
(3)RS-232C与RS-422,RS-485性能参数比较
在RS-232连接的串行通信系统中实际上只用到RXDTXD和地,在本设计中用到RS-232C,RS-485标准,RS-485标准是一种多发送器的电路标准,它扩展了RS-422A的性能,允许双导线上一个发送驱动32个负载设备,负载设备可以是被动发送器!接收器或收发器"RS-485标准没有规定在何时控制发送器发送或接收机接收数据的规则,电缆选择比RS-485更严格"对驱动器和接收器规定了双端电气接口形式,把电位差转变成逻辑电平,实现终端的信息接收".
采用RS-485最大的优点在于它的多点总线互连功能,它可以连接一台主机和多台终端同时通信,由于它是半双工的,同时只能有一方发送,一方接收,而且它采用差动电平接收的方法来提高抗干扰能力,适合在比较恶劣的环境下工作,因为在同一对电缆中所受到的干扰是很类似的,采用差动方法可以用作差的方法将干扰抵销一大部分。
由于RS-485通信是一种半双工通信,发送和接收共用同一物理信道"在任意时刻只允许一台单机处于发送状态"因此要求应答的单机必须在监听到总线上呼叫信号已经发送完毕,并且没有其它单机发出应答信号的情况下,才能应答"半双工通信对主机和从机的发送和接收时序有严格的要求"如果在时序上配合不好,就会发生总线冲突,使整个系统的通信瘫痪,无法正常工作"要做到总线上的设备在时序上的严格配合,必须要遵从以下几项原则:
(1)复位时,主从机都应该处于接收状态PRE和DE端相连为低时,从机处于接收状态,在上电复位时,由于硬件电路稳定需要一定的时间,并且单片机各端口复位后处于高电平状态,这样就会使总线上各个分机处于发送状态,加上上电时各电路的不稳定,可能向总线发送信息"因此,如果用一根口线作发送和接收控制信号,应该将口线反向后接入MAX485的控制端,使上电时MAX485处于接收状态.
(2)控制端RE,DE的信号要求
在RS-232,RS-422等全双工通讯过程中,发送和接收信号分别在不同的物理链路上传输,发送端始终为发送端,接收端始终为接收端,不存在发送!接收控制信号切换问题"在RS-485半双工通信中,由于MAX485的发送和接收都由同一器件完成,并且发送和接收使用同一物理链路,必须对控制信号进行切换"控制信号何时为高电平,何时为低电平,一般以单片机的TI,RI信号作参考"发送时,检测TI是否建立起来,当TI为高电平后关闭发送功能转为接收功能;接收时,检测RI是否建立起来,当RI为高电平后,接收完毕,又可以转为发送.
(3)发送控制信号在时序上的要求
总线上所连接的各单机的发送控制信号在时序上完全隔开"为了保证发送和接收信号的完整和正确,避免总线上信号的碰撞,对总线的使用权必须进行分配才能避免竞争,连接到总线上的单机,其发送控制信号在时间上要完全隔离"总之,发送和接收控制信号应该足够宽,以保证完整地接收一帧数据,任意两个单机的发送控制信号在时间上完全分开避免总线争端。
第二章总体设计方案
第三章 硬件设计电路
为更清楚表达系统设计中的详细过程,以下对较多采用的芯片如单片机AT89C51,MAX 485芯片74LB14, CH371、带串行EEPROM的可编程看门狗定时器等做简要介绍。
3.1 RS-485标准及接口芯片
MAX485是一种差分平衡型收发器芯片,包含一个驱动器和一个接收器,采用单+5V电源供电,专用于TTL协议(即通用于各种CPU的通信协议)与485协议间的转换.
MAX485芯片由8个管脚组成,其功能如下
1)RO脚(接收器输出端):若A比B大200mV,RO为高;若A比B小200mV,RO为低。
2)/RE脚(接收器输出使能端):PRE为低时,RO有效;PRE为高时,RO成高阻状态.
3)DE脚(驱动器输出使能端):若DE为高,驱动输出A和B有效;若DE为低,它们成高阻状态,若驱动器输出有效,器件作为线驱动器用;若为高阻状态时,PRE为低,它们作线接收器用。
4)DI脚:(驱动器输入):DI为低,将迫使输出Y为低,Z为高;若DI为高,将迫使输出Y为高,Z为低。
5)GND脚:接地
6)B脚:反相接收器输入和反相驱动器输出
7)A脚:同相接收器输入和同相驱动器输出
8)Vcc:电源正极4.75~5.25V.RS2485最大的优点在于它的多点总线互连功能,它可以连接1台主机和多台终端同时通信,由于它是半双工的方式,只能有一方发送,一方接收,而且它采用差动电平接收的方法提高抗干扰能力,适合在比较恶劣的环境下工作。
MAX485为8引脚封装,RO与89C51的RXD相连,DI与89C51的TXD相连,/RE作为接收器输出使能端,DE作为驱动器输出使能端,这两个引脚用一个控制脚进行控制,在切换器主机中使用P1.7进行控制,在键盘从机中使用P1.0进行控制,进行半双工通讯"主机部分MAX485的输出端A!B与各从机部分MAX485的输出端A!B通过双绞线连在一起。在多机通讯系统中,多个驱动器和接收器可共享一共用传输线,对于MAX485网络而言,网络上最多可挂32个站,传输距离可达1.2Km。
3.2单片机-----AT89C51的功能及芯片介绍
AT89C51是一种低功耗高性能的8位单片机,片内带有一个4K字节 的Flash可编擦除只读存储器(RF}ROM ),它采用了CMOS工艺和高密度非易失性存储器(NURAM)技术,而且其输出引脚和指令系统与MCU-51系列单片机兼容。片内Flash存储器允许在系统内可改编程序或用常规的非易失性的存储器编程器来编程。主要用在工业控制方面。其中央处理器由ALU,专用寄存器组,定时控制部件等组成,具有较强的调用、跳转、判断、丰富的数据传输功能,以及提供存放中间结果、常用参数寄存器等功能。它可以扩展64K字节程序ROM,外部数据存储器或接口地址64K字节。同时它具有5个中断,包括两个外部中断,两个定时器中断,一个串行口中断。
综上所述AT89C51是功能强大的MCU,适用于本系统设计的需要。
下面就设计中使用到的AT89C51的各功能模块分别简单介绍。
3.2.1 AT89C51方框图如下所示:
单片机是整个控制系统的核心,他的性能直接决定整个系统的性能。从整个系统的要求和经济方面考虑,我门选用了ATMEL公司生产的8位单片AT98C51单片机,他兼顾指令系统的需要,他可作为系统的外部扩展,内部还有电可擦除只读存储器,大大方便初学者。
3.2.2 AT89C51的特性:
1. 与MCS—51的产品兼容。
2. 是具有4Kbyte可重复编程的内容,可写入/擦除1000次以上,数拒保存10年以上。
3. 操作频率:0HZ—24MHZ。
4. 三层可编程的存储器上锁。
5. 128*8位内部RAM。
6. 32可编程I/O线。
7. 两组16位定时器/计数器。
8. 5个中断源。
9. 可编程的串行通道。功耗的闲置和掉电模式。
10. 片内振荡器和时钟电路。
二. 引脚功能
AT89C51单片机采用40引脚双列直插封装(DIP—40)。其引脚图如下:
下面分别对AT89C51引脚功能:
1.电源引脚:
VCC(40 脚):主电源+5v,正常操作和对EEPROM编程及验证时均接+5v 电源。GND(20 脚):接地。
2.外接晶振引脚XTAL1和XTAL2
XTAL1 (19 脚):反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2 (18 脚):来自反向振荡器的输出
3.控制信号引脚RST .ALE/PROG. PSEN 和EA/VPP。
RST(9 脚):单片机复位引脚,刚接上电源时,其内部各寄存器处于随机状态,在引脚上输入两个机器周期(既24个振荡周期)的高电平将史单片机复位。
ALE/PROG(30 脚):地址锁存/编程脉冲输入引脚,他访问片外寄存器时,ALE端仍以时钟频率1/6周期性地输出正脉冲信号。因此,他可以用作对外输出的时钟。或用于定时目的。当访问片外数拒存储器时,将跳过一输出个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX, MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。ALE端可以驱动(吸收还输出电流)8个LSTTL(低功耗高速TTL)输出。在FLASH编程期间,此引脚用于输入编程脉冲。
PSEN(29J 脚):输出访问片外程序存储器的读选通信号。CPU在由片外程序存储器取指令(或常用)期间,每个机器周期两次有效。每当访问片外数拒存储器时,这两次有效的PSEN信号将不会出现。PSEN端同样可驱动(吸收或输出电流)8个LSTTL负载。
EA/VPP(31 脚):程序存储器访问标志/编程电压输入,当输入高电平时,CPU可访问片内4KB的地址范围的程序存储器。若PC值超出4KB地址时,将自动转向访问片外程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源。
4.输入/输出引脚 P0. P1. P2. P3.
P0.0—P0.7(39—32 脚):P0口是一个8位漏极开路双向端口。在访问片外存储器时,他分别做为8位地址线和8位双向数拒总线用。在编程时,有P0口输入指令字节:而在验证程序时,则输出指令字节。验证程序时,要求外接上拉电阻。P0能以吸收电流的方式驱动8LSTTL负载。当P0口的管脚第一次被写如1时,被定义为高电阻输入。P0能够用于外部程序数拒存储器,他可以被定义为数拒/地址的第八位。在FLASH编程时,P0作为原码输入口。当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1.0—P1.7 (1—8 脚):P1是一个内部带上拉电阻的8位双向I/O口。在访问外部存储时,由输入低8位地址。P1能可以驱动(吸收或输出电流)4个LSTTL负载,P1口管脚写入1后,被内部上拉为高,可用做输入,P1口被外不下拉为低电平时,将输出电流,着是由于内部上拉的饿缘故。在FLASH编程和效验时,P1口作为第八位地址接收。
P2.0—P2.7 (21—28 脚): P2是一个内部带上拉电阻的8位双向I/O口。在访问外部存储时,由输入高8位地址。P2能可以驱动4个LSTTL负载,当P2口用于外部程序存储器或16位地址外部数拒存储器进行存储时,P2口输出地址是高8位。在给地址“1”时,他利用外部上拉优势,当对外布八位地址数拒存储进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和效验时接受高8位地址信号和控制信号。
P3.0—P3.7 (10—17 脚):P3也是一个内部带上拉电阻的8位双向I/O口。当P3口写入“1”后,他门被内部上拉为高电平,并用做输入。作为输入,有于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。AT89C51单片机是高性能单片机,因受到引脚数目的限制,所以P3口引脚具有第二功能。如图所示见下表能驱动4个LSTTL负载。
口线
第二功能
P3.0口
RXD(串行口输入)
P3.1口
TXD(串行口输出)
P3.2口
/INT0(外部中断输入)
P3.3口
/INT1(外部中断输出)
P3.4口
T0(定时器0的外部输入)
P3.5口
T1(定时器0的外部输入)
P3.6口
/WR(片内数拒存储写选通)
P3.7口
/RD(片内数拒存储写选通)
3.3 AT89C51组成的最小系统介绍
单片机AT89C51最小系统是由复位电路和振荡电路组成。
3.3.1.复位电路
复位是使和系统中其他部件都处于有个确定的初始态,并从这个状态开是工作。在振荡器正在运行情况下,复位是靠在RERST引脚步出现高电平后的第二个周期执行内部复位,以后每个周期重复一次,直至RET变低。
复位时,将ALE和/PSEN置位输入状态,既SLE=1和PSEN=1。片内RAM不受复位影响,复位后PC指向0000H单元,单片机从开始地址0000H单元开始执行程序。所以当单片机运行出错或进入死循环时,可按复位键重新启动。本系统所使用的复位电路如下图:
3.3.2.振荡电路
MCS-51的时钟电路可以有两种方式产生,一种是内部方式,利用芯片内部的振荡电路:另一种方式是外部方式。由于MCS-51有HMOS和CHMOS型,他门的时钟电路有一定的区别,这里紧介绍通常使用的HMOS型的时钟电路。
XTAL1和XTAL2分别为反向放大的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。由于输入至内部时钟信号要通过一个二分频触发器。因此对外部时钟信号的脉冲无任何要求,但必须保证脉冲的高低电平要求的宽度。
内部时钟方式:MCS-51内部有一个用于够成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端,这个放大器作为反馈元件的外部晶体或陶瓷谐振荡器一起够成一个自激振荡器。MCS-51虽然有内部振荡电路,但要形成时钟,必须外接元件,外接晶体以及电容CX1和CX2构成的并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格要求,但电容的大小会影响振荡器频率的高低,振荡器的稳定性,起振的快性和温度的稳定性。晶体可在1.2MHZ—12MHZ之间任选,电容CX1和CX2的典型值在20PF—100PF之间选择,但在60PF—70PF时振荡器有较高的频率稳定性,典型值通常选择为30PF左右(这时对应的时钟频率为12MHZ)外接陶瓷谐振器时,CX1和CX2的典型值约为47PF。在设计印刷电路板时,晶体或陶瓷振荡器和电容应进可能安装的与单片机芯片靠近,以及减少寄生电容,更好的保证振荡器稳定和可靠的工作。为了提高温度的稳定性,应采用温度性能好的高频电容。
外部时钟方式:外部时钟方式是利用外部振荡器信号源(时钟源)直接接入XTAL1和XTAL2。通常XTAL1接地,XTAL2接外部时钟,由于XTAL的逻辑电平不是TTL的,故建议外接一个4.7K-10K上拉电阻。
振荡电路是单片机工作的前提,只有晶振能可靠的起振,单片机引脚按规定的时序进行工作。本次设计所采用的是内部时钟方式:振荡电路是单片机工作的前提,单片机各个引脚才能按规定的时序进行工作。本系统采用的晶振为12MHZ.其电路如下图
AT89C51是一种带4字节可编程可擦除只读存储器的低电平,高性能CMOS 8位微处理器,俗称单片机。该器件采用ATEML高密度非易失存储器制造技术制造,与工业标准的MCS51指令集合输出管脚相兼容。处于将多功能8位CPU和闪烁存储组合在单个芯片中ATEML的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
整个ROM阵列三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦除操作中,代码阵列全被写成“1”且在任何非空存储字节被重复编程以前,该操作必须执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下。CPU停止工作。但RAM,定时器,计数器,串行口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所有其他芯片功能,直到下一个硬件复位为止。
3.3.3 串行I/0口
AT89C51还有一个可编程的、全双工的串行I/O口,可以作为UART(通用异步接收/发送器),也可以作为同步移位寄存器用。AT89C51的串行I/O设有缓冲寄存器SBUF,是能够直接寻址的SFR,在物理上对应着两个缓冲寄存器:接收和发送缓冲寄存器。接收器是双缓冲器,可避免在接收下一帧数据前,未能及时把接收到的数取走而产生数据重叠。它的串行I/O口有四种工作方式供选择。
方式0用同步的方式串行输出或输入数据,但并非真正的同步通信方式,在此方式下,串行口相当于一个并入串出或串入并出的移位寄存器。由TXD引脚发送出同步移位脉冲,由RXD引脚送出或接收串行数据。串行数据形式是8位数据,同步脉冲的宽度也是固定的,为单片机时钟频率的1/12,等于AT89C51的一个机器周期。
方式1异步接收发送方式,此方式为经常使用的工作方式串行数据位由TXD引脚传送出去,由RXD引脚将对方发来的串行数据位接收进来。至于传输的波特率是由定时器决定,设置不同的定时器初始值可以得到不同的波特率。通信双方应约定使用相同的波特率。
方式2 11位异步接收发送方式,与方式1相比不同的是方式2字符格式的最后可以插入第9位数据位,可以用一些指令将这一位设置为奇偶校验位等。其波特率有两种选择,分别为单片机时钟频率的1/32和1/64.
方式3 11位异步接收发送方式,其字符格式和方式2相同,波特率受定时器控制(设置不同的定时器初始值可以得到不同的波特率),并和电源控制寄存器中的SMOD位有关。
串行波特率的设定是串行接口应用中最重要的一步,如果不能合理设置,通信则无法正常进行。对于方式0,波特率是固定的,发送的同步脉冲的频率为单片机时钟频率的1/12,即fosc/12:对于方式2,波特率有两种可供选择,即fosc/32和 fosc/64.对应于公式:
中的SMOD为PCON寄存器中的控制位。
对于方式1和方式3,波特率都由定时器1的滋出率来决定,而在串行通信时,定时器经常采用定时器方式2,即8位重装计数方式,对应于公式:
3.3.4 AT89C51内部定时/计数器
51系列单片机内部都带有定时/计数器,AT89C51内部有两个16位的定时/计数器:TO和T1。与一般的定时/计数器类似,主要有以下特点:
第一:定时/计数可有多种工作方式,可以是计数方式也可以是定时方式等;
第二:计数器模值是可变的,其最大值取决于计数器的位数,该位数同时限定了定时的最大值;
第三:可以计算由TO或T1引脚的输入脉冲数,用作计数器或频率计。
这两个定时/计数器都有4种工作方式
,
见表a定时/计数器表
工作方式
功能
工作方式1
13位计算器
工作方式2
16位计算器
工作方式3
可自动装入记数初值8位重装计数器
工作方式4
T0分为两个计数器,T1停止计数器
在方式3中计数器Tl停止计数时,计数器TO分为两个独立的8立计数器,由TLO和THO来负责计数工作。
AT89C51的定时/计数器是可编程的,因此,在进行定时或计数之前也要用程序进行初始化。在初始化的过程中,要置入定时值或计数值狗初值,为计算此值就要从计数最大值倒退回去一个计数模值才是应置入的初值。设计数器的最大值为M,计数器的初值设定由下面公式算得:
计数方式时:
X=M一计数模值·
之时方式时:
(M一X)}T=定时值
可以X=M一定时值产,其高8位为寄存器TH1的初值,低8位为TLO沟初值。其中T为计数周期,它是单片机时钟周期的12倍。
3.3.5 AT89C51中断
AT89C51有五个中断源,即两个外部中断,两个定时/计数器中断和一个串行口中断。当某种中断源产生中断时,便设定在SFR中的中断示志位一一TCON中的各位,MCU在从标志位识别出中断种类并响应和请时,立刻从主程序转去执行中断服务子程序以进行中断服务,并呆护现场。关键就在于确定中断服务程序的入口地址。表给出了中断的向量地址,即是中断服务程序的入口地址 表b中断的向量表
中断源
工作标志
向量地址
外部中断0
IE0
03H
定时/计数器0
TF0
0BH
外部中断1
IE1
13H
定时/计数器
TF1
1BH
串行断口接收
TI
23H
串行断口发送
RI
23H
中断程序结束之后恢复程序运行环境,回到断点处继续执行程序。在应用时应注意中断的嵌套,防止中断溢出。
第四章 USB数据通讯介绍
USB接口可以有很多方法完成,如可以使用专用的USB接口芯片,也可以用带有USB接口的单片机或直接用FPGA来完成USB接口。但由于USB接口的设计必须考虑USB通讯协议、驱动程序、自动配置过程等,增加了它的开发难度。本文介绍了一种USB总线通用接口芯片CH371,基于CH371套件设计USB接口不必考虑USB通讯协议、驱动程序、自动配置过程、底层数据传输过程等,简化了USB接口的设计。
4.1 CH371简介
CH371套件包括CH371芯片和计算机端的CH371通用驱动程序.CH371芯片以硬件逻辑而不是额外编写的固件程序实现了USB通讯协议,驱动程序则通过软件向计算机应用层提供了设备级接口以及应用层接口。CH371套件屏蔽了USB 通讯中的相关协议和驱动程序,在计算机应用层与本地端控制器之间提供端对端的接。它具有以下特点:
① 屏蔽USB 协议,在计算机应用层与本地端之间提供端对端的连接。
② 自动完成USB配置过程,完全不需要本地端控制器作任何处理。
③ 标准的USB V1.1接口,即插即用,D+引脚内置上拉电
④ 通用Windows驱动程序。提供设备级接口和应用层接口。
⑤内置可选的看门狗电路Watch—Dog,为本地端控制器提供监控。
⑥内置输入输出缓冲区,以中断方式通知本地端控制器传输数据.
⑦ 内置上电复位,提供高电平有效复位输出和低电平有效复位输出。
⑧ 具有16个地址,可选直接地址方式或者复用地址方式。上电复位后,CH371芯片默认选择直接地址方式,即由A3~A0引脚输入地址直接作为内部地址:当ALE引脚检测到上升沿后,CH371芯片自动切换为复用地址方式,即控制器将地址输出到数据总线的D3~DO上,由CH371芯片在ALE的下降沿将其锁存为内部地址。一般情况下,基于CH371实现MCU与PC之间的USB通信需要完成两件事情:一是当上位机端发出数据传输请求时,CH371接收下传数据并以中断方式通知下位机接收。将下传数据写入下位机端数据缓冲区中;二是当下位机端有数据需要上传时,CH371接收上传数据并在成功接收后以中断方式通知下位机端数据上传成功。
4.2 CH371的功能和使用简介
CH371 USB接口芯片是一种利用硬件逻辑封装了USB通信协议的28脚芯片。为方便使用,同时提供了配套的Pc机USB口驱动软件。图l是CH371的引脚功能图。由图l可见
CH371的引脚功能
1脚: INT#中断输入
ALE 地址锁存使能(输入)
WR# 写选通(输入)
RD# 读选通(输入)
A0-A3 片内寄存器寻址地输入)
OFF 关闭D+上拉电阻(输入)
D+、D-USB 数据线(双向)
XI、Xo 晶振连接
D0- D7 数据总线(双向)
SDAI=C 接口数据线(双向)
SCL I℃ 接口时钟线(输出)
RST,RST# 上电复看门狗复位(输出)
CS# 片选线(输入)
VCC、GND 电源与地线
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询