电赛汇总(一):微控制器以其外围电路模块设计

电赛汇总(一):微控制器以其外围电路模块设计

这一章节主要详细记录各种常用的微控制器的引脚功能、外围的电路模块等,以便随时查看翻阅。这部分内容出自黄智伟等学者著的《全国大学生电子设计竞赛教程–常用电路模块制作》一书中,感兴趣的朋友可以购买翻阅。
说到微型控制器,一开口就是51、32、树莓派和Nano这些。但是这些都集成好的单元模块,一般在电赛都是自己买好芯片焊上去的。这样子可以方便电路设计。从微控制器封装角度来说,常见的采用 PDIP、PLCC 和 TQFP三种封装形式。简单来看就是一根长方形和或者一块正方形。这里我收集了两个单片机的接口,其实看了两个就可以很熟悉这些接口是非常相似的。

1.1 AT89S52单片机PACK板

1.1.1 AT89S52单片机简介

AT89S52是一种低功耗、高性能的 CMOS8位微控制器,具有8KB在系统可编程 Flash 存储器;使用 Atmel公司高密度非易失性存储器技术制造,片上 Flash 允许程序存储器在系统可编程,也适于常规编程器。AT89S52具有8KB Flash,256 B RAM,32位I/O口线,看门狗定时器,2个数据指针,3个16位定时器/计数器,1个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0 Hz静态逻辑操作,支持2种软件,可选择节电模式。在空闲模式下,CPU停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。在掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 AT89S52是在电子设计竞赛中最常用的单片机之一。

1.1.2 AT89S52单片机封装形式与引脚端功能

AT89S52的PDIP 封装形式如图 1-1所示,PDIP 封装尺寸如表1-1所列。
在这里插入图片描述

AT89S52的引脚端功能如下。
1、VCC:电源。
2、GND:地。
3、P0.0~P0.7:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对 P0端口写“1”时,引脚端用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在 Flash编程时,PO口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。
4、P1.0~P1.7:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对 P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚端由于内部电阻的原因,将输出电流(ILL)。 此外,P1.0 和 P1.2分别作为定时器/计数器2 的外部计数输入(P1.0/T2)和定时器/计数器2 的触发输入(P1.1/T2EX),具体如表1-2所列。 在 Flash 编程和校验时,P1口接收低 8位地址字节。
在这里插入图片描述
5、P2.0~P2.7:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对 P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(I1L.)。
在访问外部程序存储器或用16位地址读取外部数据存储器时(如执行“MOVX @DPTR”),P2口送出高8位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如“MOVX @RI”)访问外部数据存储器时,P2口输出 P2锁存器的内容。
在 Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
6、P3.0~P3.7:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。对 P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(I₁L)。
P3口也作为 AT89S52的特殊功能(第二功能)使用,如表 1-3所列。
在这里插入图片描述
在 Flash 编程和校验时,P3口也接收一些控制信号。
7、RST:复位输入。 晶振工作时,RST 引脚持续2个机器周期的高电平使单片机复位。看门狗计时完成后,RST 引脚输出 96个晶振周期的高电平。特殊寄存器 AUXR(地址 8EH)上的 DISRTO位可以使此功能无效。在 DISRTO 默认状态下,复位高电平有效。
8、ALE/PROG: 地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低 8位地址的输出脉冲。在 Flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振 1/6的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,则通过将地址为8EH的 SFR 的第0位置“1”,使 ALE操作将无效。这一位置“1”,ALE 仅在执行 MOVX或MOVC指令时有效;否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的 SFR 的第0位)的设置对微控制器处于外部执行模式下无效。
9、PSEN:外部程序存储器选通信号。当 AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
10、EA/VPP:访问外部程序存储器控制信号。为使能 0000H~FFFFH的外部程序存储器读取指令,EA必须接 GND。为了执行内部程序指令, 应该接 VCC。
在 Flash 编程期间,EAt 也接收 12 V VPP 电压。
11、XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。
12、XTAL2:振荡器反相放大器的输出端。

1.1.3 AT89S52 单片机 PACK 板电路和PCB

AT89S52采用PDIP封装,AT89S52单片机 PACK 板电路与 PCB图如图 1-2所示。
在这里插入图片描述

1.2 ATmega128单片机PACK板

1.2.1 ATmega128单片机简介

ATmega128(ATmega128L)是 Atmel公司生产的 8位微处理器,其产品特点如下:
①高性能、低功耗的 AVR8位微处理器。
②先进的 RISC 结构。

  • 133条指令,大多数可以在一个时钟周期内完成;
  • 32×8通用工作寄存器;
  • 全静态工作;
  • 工作于16 M Hz时性能高达 16 M IPS;
  • 只需两个时钟周期的硬件乘法器。
    ③非易失性的程序和数据存储器。
  • 128K B的系统内可编程Flash(寿命:10 000次写/擦除周期);
  • 具有独立锁定位、可选择的启动代码区,通过片内的启动程序可以实现系统内编程,真正的读/修改/写操作;
  • 4KB的 EEPROM(寿命:100 000次写/擦除周期);
  • 4KB的内部 SRAM;
  • 多达64KB的优化的外部存储器空间;
  • 可以对锁定位进行编程以实现软件加密;
  • 可以通过SPI实现系统内编程。
    ④JTAG接口(与 IEEE 1149.1标准兼容)。
  • 遵循 JTAG标准的边界扫描功能;
  • 支持扩展的片内调试;
  • 通过JTAG接口实现对 Flash、EEPROM、熔丝位和锁定位的编程。
    ⑤外设特点。
  • 两个具有独立预分频器和比较器功能的8位定时器/计数器;
  • 两个具有预分频器、比较功能和捕捉功能的 16位定时器/计数器;
  • 具有独立预分频器的实时时钟计数器;
  • 两路8位 PWM;
  • 6路分辨率可编程(2~16位)的 PWM;
  • 输出比较调制器;
  • 8路 10位 ADC: 8个单端通道,7个差分通道,2个具有可编程增益(×1,×10,或×200)的差分通道;
  • 面向字节的两线接口;
  • 两个可编程的串行 USART;
  • 可工作于主机/从机模式的 SPI 串行接口;
  • 具有独立片内振荡器的可编程看门狗定时器;
  • 片内模拟比较器。
    ⑥特殊的处理器特点。
  • 上电复位以及可编程的掉电检测;
  • 片内经过标定的 RC振荡器;
  • 片内/片外中断源;
  • 6种睡眠模式:空闲模式、ADC噪声抑制模式、省电模式、掉电模式、 - - Standby模式以及扩展的 Standby模式;
  • 可以通过软件选择时钟频率;
  • 通过熔丝位可以选择A Tmega103兼容模式;
  • 全局上拉禁止功能。
    ⑦1/0 和封装。
  • 53个可编程I/O口线;
  • 64引脚TQFP与64引脚MLF封装。
    ⑧工作电压。
  • 2.7~5.5 V ATmega128L;
  • 4.5~5.5 V ATmegal28。
    ⑨速度等级。
  • 0~8M Hz A Tmega128L;
  • 0~16 M Hz ATmega128。
    ATmega128是一个功能强大的单片机,可以为许多嵌入式控制应用提供灵活而低成本的解决方案。
    Atmel公司为 ATmega128 提供了一整套的编程与系统开发工具,包括 C语言编译器、宏汇编、程序调试器/软件仿真器、仿真器及评估板。

1.2.2 ATmega128单片机封装形式与引脚端功能

ATmega128单片机采用64 引脚 TQFP 与64引脚 MLF 封装,64引脚 TQFP封装形式如图 1-3所示,64引脚TQFP 封装尺寸如表1-4所列。

在这里插入图片描述
在这里插入图片描述

引脚功能如下所示。
1、VCC:数字电路的电源。
2、GND:地。
3、端口A(PA7~PA0):端口A为8位双向I/O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口 A为三态。
端口A也可以用作其他不同的特殊功能,更多的内容请登录 www.atmel.com 查阅ATmega128 Datasheet。
4、 端口B(PB7~PB0):端口B为8位双向I/O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口B为三态。
端口B也可以用作其他不同的特殊功能,更多的内容请登录 www.atmel.com 查阅ATmega128 Datasheet。
5、端口C(PC7~PC0):端口C为8位双向I/O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口 C为三态。
端口C也可以用作其他不同的特殊功能,更多的内容请登录 www.atmel.com 查阅 ATmega128 Datasheet。 在ATmega103兼容模式下,端口 C只能作为输出,而且在复位发生时不是三态。
6、端口D(PD7~PD0):端口D为8位双向I/O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口D为三态。
端口D也可以用作其他不同的特殊功能,更多的内容请登录 www.atmel.com查阅ATmega128 Datasheet.
7、端口E(PE7~PE0):端口E为8位双向1/0口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口 E为三态。
端口E也可以用作其他不同的特殊功能,更多的内容请登录 www.atmel.com 查阅ATmega128 Datasheet。
8、端口 F(PF7~PF0):端口F为ADC 的模拟输入引脚。如果不作为 ADC的模拟输入,则端口 F可以作为 8位双向 1/0口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口 F为三态。
如果使能 JTAG接口,则复位发生时引脚 PF7(TDI)、PF5(TMS)和 PF4(TCK)的上拉电阻使能。 端口 F也可以作为JTAG接口。在 ATmega103兼容模式下,端口F只能作为输入引脚。
9、端口G(PG4~PG0):端口G为5位双向1/0口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口G为三态。
端口G 也可以用作其他不同的特殊功能。在 ATmega103兼容模式下,端口G 只能作为外部存储器的锁存信号以及 32 kHz振荡器的输入,并且在复位时这些引脚初始化为 PG0=1,PG1=1及PG2=0。PG3和PG4是振荡器引脚。
10、RESET:复位输入引脚。超过最小门限时间的低电平将引起系统复位。门限时间的更多内容请登录 www.atmel.com 查阅ATmega128 Datasheet。低于此时间的脉冲不能保证可靠复位。
11、XTAL1:反相振荡器放大器及片内时钟操作电路的输入。
12、XTAL2:反相振荡器放大器的输出。
13、AVCC: AVCC 为端口 F以及ADC 转换器的电源,需要与 VCC 相连接,即使没有使用 ADC 也应该如此。使用ADC时应该通过一个低通滤波器与 VCC 连接。
14、AREF:AREF 为 ADC 的模拟基准输入引脚。
15、PEN:PEN是 SPI串行下载的使能引脚。在上电复位时保持PEN为低电平将使器件进入 SPI串行下载模式。在正常工作过程中 引脚没有其他功能。

1.2.3 ATmega128单片机PACK 板电路和PCB

ATmega128单片机 PACK 板电路和 PCB 图如图1-4 所示,ATmega128单片机 PACK 板接口控制板电路和 PCB图如图1-5所示。
在这里插入图片描述
在这里插入图片描述
请添加图片描述

在这里插入图片描述

2.1 键盘及LED数码管显示器模块

2.1.1 ZLG7290B 简介

键盘及 LED显示器电路采用 ZLG7290B实现。ZLG7290B是广州周立功单片机发展有限公司自行设计的数码管显示驱动及键盘扫描管理芯片,能够直接驱动8位共阴式数码管(1英寸以下)或64只独立的 LED;能够管理多达 64只按键,自动消除抖动,其中有8只可以作为功能键使用;段电流可达20mA,位电流可达100mA 以上;利用功率电路可以方便地驱动1英寸以上的大型数码管;具有闪烁、段点亮、段熄灭、功能键和连击键计数等强大功能;提供10种数字和 21种字母的译码显示功能,或者直接向显示缓存写入显示数据;不接数码管而仅使用键盘管理功能时,工作电流可降至 1mA;与微控制器之间采用I²C串行总线接口,只需两根信号线,节省 I/O资源;工作电压范围为 3.3~5.5 V;工作温度范围为-40~+85℃;该芯片为工业级芯片,抗干扰能力强,在工业测控中已有大量应用。

2.1.2 ZLG7290B封装形式与引脚端功能

  1. ZLG7290B的引脚端功能
    ZLG7290B采用DIP-24(窄体)或者 SOP-24封装,其引脚端功能如表2-1所列。
  2. ZLG7290B工作原理
    ZLG7290B是一种采用 I²C总线接口的键盘及 LED驱动管理器件,须外接6 MHz的晶振。使用时 ZLG7290B的从地址为70H,器件内部通过 I²C 总线访问的寄存器地址范围为00H~17H,任一个寄存器都可按字节直接读/写,并支持自动增址功能和地址翻转功能。
    (1)驱动数码管显示
    使用 ZLG7290B驱动数码管显示有两种方法:第一种方法是向命令缓冲区(07H~08H)写入复合指令,向 07H写入命令并选通相应的数码管,向08H写入所

要显示的数据,这种方法每次只能写入一字节的数据,多字节数据的输出可在程序中用循环写入的方法实现;第二种方法是向显示缓存寄存器(10H~17H)写入所要显示的数据的段码,段码的编码规则从高位到低位为 abcdefgdp,这种方法每次可写入1~8字节数据。
在这里插入图片描述
(2)读取按键
使用 ZLG7290B读取按键时,读普通键的入口地址和读功能键的入口地址不同,读普通按键的地址为 01H,读功能键的地址为03H。读普通键返回按键的编号,读功能键返回的不是按键编号,需要程序对返回值进行翻译,转换成功能键的编号。 ZLG7290B具有连击次数计数器,通过读取该寄存器的值可区别单击键和连击键,判断连击次数还可以检测被按时间;连击次数寄存器只为普通键计数,不为功能键计数。此外,ZLG7290B的功能键寄存器,实现了2个以上的按键同时按下,来扩展按键数目或实现特殊功能,类似于 PC的 Shift、Ctrl 和 Alt键。
3.与微控制器连接
ZLG7290B通过 I²C接口与微控制器进行串口通信,I²C总线接口传输速率可达32kbps。ZLG7290B的I²C总线通信接口主要由 SDA、SCL 和INT 3个引脚组成。 SCL线用来传递时钟信号,SDA线负责传输数据,SDA和 SCL与微控制器相连时,需加 3.3~10kΩ的上拉电阻。 INT负责传递键盘中断信号,与微控制器相连时须串联一个 470Ω的电阻。ZLG7290B与微控制器连接示意图如图 2-1所示。
2.1.3 ZLG7290B键盘及 LED数码管显示器模块电路和PCB
一个采用 ZLG7290B构成的8位 LED显示器和16键的应用电路原理图和 PCB 图如图2-2和图 2-3所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在图 2-2中,U1就是 ZLG7290B。为了使电源更加稳定,一般要在 VDD3.3到 GND 之间接入 47~470μF的电解电容。J1(或J2)是 ZLG7290B 与微控制器的接口,按照 I²C总线协议的要求,信号线 SCL和 SDA上必须要分别加上拉电阻,其典型值是10kΩ。
晶振 Y1通常取值6 MHz,调节电容 C3 和 C4 通常取值为 22 pF左右。复位信号是低电平有效,直接通过拉低 RST 引脚的方法进行复位。数码管采用共阴式的,不能直接使用共阳式的。数码管在工作时要消耗较大的电流,R1~R8 是 LED的限流电阻,典型值是 270Ω。如果要增大数码管的亮度,则可以适当减小电阻值,最低为200Ω。
键盘采用16只按键,键盘电阻 R10~R17 的典型值是 3.3kΩ,这里选择的是1kΩ。
数码管扫描线和键盘扫描线是共用的,所以二极管D1和 D2是必需的,有了它们就可以防止按键干扰数码管显示的情况发生。
ZLG7290B应用中应注意的一些问题如下。

  1. ZLG7290B一定要放在控制面板上
    ZLG7290B可广泛应用于仪器仪表、工业控制器、条形显示器和控制面板等领域。在实际应用中,控制面板和主机板往往是分离的,它们之间有几十厘米的距离,要用长长的排线相连。键盘和数码管一般都位于控制面板上,主控制器则在主机板上。
    在设计时千万注意:ZLG7290B一定要跟着控制面板走,而不要放在主机板上, ZLG7290B驱动数码管显示采用的是动态扫描法,为了防止显示出现闪烁,采用了比较高的扫描频率。扫描键盘同样用的也是频率较高的信号。如果 ZLG7290B放在主机板上,那么这些扫描信号势必要走长线,而高频信号最忌讳走长线,这容易导致显示混乱、按键失灵等故障。如果 ZLG7290B放在控制面板上,那么由于走的是短线,就不易出现上述问题了。不必担心 ZLG7290B与主控制器之间通信的 I²C总线会有问题。 因为 I²C总线的通信速率是由主控制器控制的,可以做得低一些,所以允许走长线。
    2.复位引脚可以由主控制器直接控制
    在工业控制应用中,为了增强抗干扰能力,建议采用独立的稳定直流电源给 ZLG7290B供电,VCC与GND之间的电容也要相应加大。 另外,复位引脚最好由主控制器来控制,每隔几分钟强制复位一次,复位脉冲宽度可以在 20 ms左右,一闪而过,肉眼很难察觉。定时强制复位可以有效防止偶尔由于电磁干扰而产生的显示不正常和按键失灵的现象。
  2. 驱动1英寸以上的大数码管时,要另外加驱动电路
    ZLG7290B的驱动能力有限,如果直接驱动1英寸以上的大数码管,则可能会导致显示亮度不够,需要另外加驱动电路。
  3. 降低晶振频率
    在 ZLG7290B的典型应用电路中,晶振频率采用4MHz。在一般情况下,能够稳定地工作。但是在电磁环境恶劣的现场,建议把晶振频率再降低一些,降为1~3 MHz。许多本来“有问题”的电路,在把晶振频率降下来之后就完全正常了。 晶振频率降低后,I²C总线的通信速率也要适当降低。ZLG7290B的闪烁显示功能将受到影响,闪烁速度将因晶振频率的下降而跟着变慢,这时要适当调整闪烁控制寄存器 Flash On Off的数值。
    2.1.4 ZLG7290B 4×4 矩阵键盘模块电路和PCB
    ZLG7290B4×4 矩阵键盘模块电路原理图和 PCB图如图2-4所示。
    在这里插入图片描述
    在这里插入图片描述

2.2 RS-485总线通信模块

2.2.1 MAX485 封装形式与引脚端功能

Maxim公司生产的 MAX485 是一款用于 RS-485总线通信的低功率半双工收发器件,芯片内部集成了一个驱动器和一个接收器,符合 RS-485 总线通信标准。 MAX485 芯片采用单一电源+5V工作,额定电流为300μA,完成将TTL电平转换为 RS-485 电平的功能,将输入的 TTL 电平转换成差分电平输出。
MAX485有DIP、μMAX和SO三种封装,DIP封装形式和尺寸如图2-5所示, DIP封装尺寸如表2-2所列,引脚端功能如表2-3所列。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.2 MAX485的典型应用

MAX485的典型应用示意图如图2-6所示,构成一个典型的半双工 RS-485网络。

2.2.3 MAX485 总线通信模块电路和PCB

MAX485 总线通信模块电路原理图和 PCB图如图2-7所示。为防止本机硬件故障时总线中其他分机的通信受到影响,在 MAX485信号输出端串联了两个 20Ω的电阻R4 2和 R5 2。在应用系统的现场施工中,由于通信载体是双绞线,它的特性阻抗约为 120Ω,所以在线路设计时,在 RS-485网络传输的始端和末端应各接1个约为 120Ω的匹配电阻(如图2-7中R1 2、R6 2两个电阻串联约为 120Ω),以减少线路上传输信号的反射。
在这里插入图片描述
根据 MAX485 芯片的特性,接收器的检测灵敏度为±200mV,即差分输入端 输出逻辑 1, 输出逻辑 0;而 A、B端电位差的绝对值小于200 mV时,输出为不确定。
当总线上所有发送器被禁止时,接收器输出逻辑0,这会误认为通信帧的起始引起系统工作不正常。解决这个问题的办法是人为地使 A端电位高于B端电位,这样 RXD的电平在 MAX485总线不发送期间(总线悬浮时)呈现唯一的高电平,单片机就不会被误中断而收到乱字符。在 MAX485 电路的 A、B输出端,增加一个上拉电阻 R2 2 和下拉电阻 R3 2,可以很好地解决这个问题。
一个利用高速光耦 6N137 隔离电气连接的 MAX485 总线通信模块电路原理图和 PCB图如图2-8所示。
在这里插入图片描述
在这里插入图片描述
MAX485 芯片的内部含有一个驱动器和接收器,引脚非常简单,RO 和 DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的 RXD 和TXD相连即可。RE和 DE端分别为接收和发送的使能端,当RE为逻辑0时,若件处于接收状态:当DE为逻辑1时,器件处于发送状态,可以采用单片机的 I/O端控制这两个引脚。A端和B端分别为接收和发送的差分信号端,当 A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。所以只需要一个信号控制 MAX485 的接收和发送即可,同时在 A 和 B端之间加1200的匹配电阻。

2.3 CAN总线接口通信模块

2.3.1 CAN总线简介

控制器局域网 CAN(Controller Area Network)是德国 Bosch 公司于 1983年为汽车应用而开发的,它是一种现场总线(FieldBus),能有效支持分布式控制和实时控制的串行通信网络。 1993年11月,ISO正式颁布了控制器局域网 CAN 国际标准(ISO 11898)。
一个理想的由 CAN总线构成的单一网络中可以挂接任意多个节点,实际应用中节点数日受网络硬件的电气特性所限制。例如,当使用 Philips P82C250作为 CAN收发器时,同一网络中允许挂接110个节点。CAN可提供1 Mbps的数据传输速率。CAN 总线是一种多主方式的串行通信总线。基本设计规范要求有高的位速率,高抗电磁干扰性,并可以检测出产生的任何错误。当信号传输距离达到 10km 时,CAN总线仍可提供高达 50kbps的数据传输速率。 CAN总线具有很高的实时性能,已经在汽车工业、航空工业、工业控制和安全防护等领域中得到了广泛应用。
CAN 总线的通信介质可采用双绞线、同轴电缆和光导纤维,最常用的是双绞线。通信距离与波特率有关,最大通信距离可达 10km,最大通信波特率可达 1Mbps。 CAN总线仲裁采用11位标识和非破坏性位仲裁总线结构机制,可以确定数据块的优先级,保证在网络节点冲突时最高优先级节点不需要冲突等待。CAN 总线采用了多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线以及广播通信的特点。 CAN 总线上任意节点可在任意时刻主动向网络上其他节点发送信息而不分主次,因此可在各节点之间实现自由通信。
CAN 总线信号使用差分电压传送,两条信号线被称为 CAN H和 CAN L,静态时均约为 2.5 V,此时状态表示为逻辑1,也可以叫做“隐性”。采用CAN H比 CAN L 高表示逻辑 (),称为“显性”,通常电压值为 和 当“显性”位和“隐性”位同时发送时,最后总线数值将为“显性”。
CAN 总线的一个位时间可以分成4个部分:同步段、传播时间段、相位缓冲段1

和相位缓冲段 2。每段时间份额的数目都是可以通过 CAN总线控制器编程控制,而

同步段:用于同步总线上的各个节点,在此段内期望有一个跳变沿出现(其长度固定)。如果跳变沿出现在同步段之外,那么沿与同步段之间的长度叫做沿相位误差。采样点位于相位缓冲段 1的末尾和相位缓冲段 2的开始处。
传播时间段:用于补偿总线上信号传播时间和电子控制设备内部的延迟时间。 因此,要实现与位流发送节点的同步,接收节点必须移相。 CAN 总线非破坏性仲裁规定,发送位流的总线节点必须能够收到同步于位流的 CAN总线节点发送的显性位。
相位缓冲段1:重同步时可以暂时延长。
相位缓冲段2:重同步时可以暂时缩短。
同步跳转宽度:长度小于相位缓冲段。
同步段、传播时间段、相位缓冲段1和相位缓冲段2的设定与CAN总线的同步、仲裁等信息有关,其主要思想是要求各个节点在一定误差范围内保持同步。必须考虑各个节点时钟(振荡器)的误差和总线的长度带来的延迟(通常每米延迟为5.5 ns)。正确设置CAN总线的各个时间段,是保证 CAN总线良好工作的关键。
按照 CAN 2.0B协议规定,CAN总线的帧数据有如图 2-9所示的两种格式:标准格式和扩展格式。作为一个通用的嵌入式 CAN节点,应该支持上述两种格式。
####################

2.3.2 CAN总线接口通信模块结构

CAN 总线接口通信模块主要包含主控制器、CAN总线控制器和 CAN总线收发器。

  1. 主控制器
    主控制器选用美国 Atmel公司的 AVR单片机 ATmega128。ATmega128单片机为基于 AVR RISC 结构的8位低功耗CMOS微处理器,片内含128KB的系统内可编程 Flash 程序存储器、4 KB的 EEPROM、4KB的 SRAM、53个通用 I/O端口线、32个通用工作寄存器、实时时钟(RTC)、4个比较灵活的具有比较模式和 PWM 功能的定时器/计数器(T/C)、2个USART、面向字节的两个接口(TWI)以及8通道

10位 ADC。ATmegal28单片机完全满足CAN总线通信系统的硬件资源需要。
2. CAN控制器
CAN 总线控制器选用 Philips 公司生产的CAN 总线控制器SIAIOOO, SJA1000 可以应用于移动目标和一般工业环境中的区域网络控制。 SJA1000是 Philips公司生产的半导体 PCA82C200 CAN控制器 BasicCAN的替代产品, Basie CAN模式和 PCA82C200兼容,而且它增加了一种新的工作模式 PeliCAN,这种模式支持具有很多新特性的CAN2.0B协议。
SJA1000采用DIP-28和 SO-28两种封装形式,SO 封装形式和尺寸如图2-10所示,SO 封装尺寸如表2-4所列,典型应用示意图如图2-11所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
SJA1000 引脚端功能如下。
引脚端2,1,2823,AD7AD0:地址/数据总线;
引脚端3,ALE/AS: ALE输入信号(Intel mode, Intel模式);AS 输入信号(Motorola mode, Motorola 模式);
引脚端4,CS:片选输入,低电平有效,允许访问 SJA1000;

mode);
CLKOUT(引脚端7):SJA1000为微控制器产生的时钟输出信号;
引脚端,VSS1:逻辑电路地;
引脚端9,XTAL1:振荡器输入;外部振荡器信号输入;
引脚端10,XTAL2:振荡器输出;当使用外部振荡器时,必须开路;
引脚端11,MODE:模式选择,“1”选择 Intel mode;“0”选择 Motorola mode;
引脚端12,VDD3:输出驱动器的5 V电源;
引脚端13,TX0:来自 CAN 输出驱动器 0的输出;
引脚端14,TX1:来自CAN输出驱动器 1的输出;
引脚端15,VSS3:输出驱动器接地;
引脚端16,INT: 中断输出,用来中断微控制器;
引脚端17,RST: 复位输入,用来复位 CAN接口;

引脚端18, VDD2:输入比较器的5 V电源;
引脚端19,20,RX0,RX1:SJA1000 比较器的输入:
引脚端21,VSS2:输入比较器接地;
引脚端22,VDD1:逻辑电路 5 V电源。
3. CAN收发器
CAN 总线收发器选用 Philips 公司生产的专用 CAN总线收发器PCA82C250,可以提供CAN总线协议控制器和物理总线的接口。此器件对器件提供差动发送能力,对CAN总线控制器提供差动接收能力。
PCA82C250 采用 DIP-8和 SO-8两种封装形式,SO 封装形式和尺寸如图 2-12所示,SO 封装尺寸如表2-5所列,典型应用示意图如图2-13所示。

在这里插入图片描述

在这里插入图片描述
PCA82C250引脚端功能如下。
引脚端1,TXD:发射数据输入;
引脚端2,GND:接地;
引脚端3,VCC:电源电压;
引脚端4,RXD:接收数据输出;
引脚端5, Vref:基准电压输出;
引脚端6,CANL:低电平 CAN电压输入/输出;
引脚端7,CANH:高电平 CAN电压输入/输出;
引脚端8,Rs:斜率电阻输入。
在这里插入图片描述
4. 高速光电耦合器
为了增强CAN总线节点的抗干扰能力,SJA1000的 TX0和 RX0并不是直接与PCA82C250的 TXD和 RXD相连,而是通 过高速 光电耦合器 6N137 后与 PCA82C250 相连,这样就很好地实现了总线上各 CAN总线节点之间的电气隔离。6N137是高速光电耦合器,兼容 TTL 和 COMS 电平,可通过信号的宽度为10 MHz,完全满足 CAN总线信号1 Mbps的通信速率。6N137内部结构与引脚端封装如图2-14所示,引脚端输入/输出关系如表2-6所列。
在这里插入图片描述
在这里插入图片描述

2.3.3 CAN总线接口通信模块电路和PCB

CAN总线接口通信模块电路原理图和PCB图如图2-15所示。
在这里插入图片描述
在这里插入图片描述
在图2-15中应注意以下几点:
①因为使用 AVR单片机与 SJA1000 接口,所以MODE 引脚接高电平 VCC (Intel模式)。
② SJA1000 的 AD0~AD7 连接到 ATmega128的 PA端口,CS 连接到
ATmega128的 PF0端口,即当PF0为0时,CPU片外存储器地址可选中 SJA1000,
单片机通过这些地址可以实现对 SJA1000的控制,执行相应的读/写操作。SJA1000

INT0,ATmega128也可通过中断方式访问 . SJA1000。
③为增强CAN 总线节点的抗干扰能力,SJA1000 的 TX0 和 RX0 通过 U1 1、 U2 1两个高速光电耦合器 6N137后与 PCA82C250 相连,以便实现总线上各 CAN总线节点之间的电气隔离,光耦部分电路所采用的两个电源 VCC 和+5 V必须完全隔离。
④ PCA82C250 与 CAN总线的接口部分也采取一定的安全和抗干扰措施。 PCA82C250 的 CANH 和 CANL 引脚各自通过 1个5Ω的电阻与 CAN总线相连起一定的限流作用,保护 PCA82C250免受过流的冲击;CANH和 CANL 与地之间并联了2个30pF的小电容C2 1和 C3 1,可以起到滤除总线上的高频干扰和一定的防电磁辐射的作用;在两根CAN 总线接入端与地之间分别反接了一个保护二极管 D1 1和D2 1,当CAN总线有较高的负电压时,通过二极管的短路可起到一定的过压保护作用。
PCA82C250的 Rs引脚与地之间的电阻 Rs称为斜率电阻,它的取值决定系统处于高速工作方式还是斜率控制方式,把该引脚直接与地相连,系统将处于高速工作方式,在这种方式下,为避免射频干扰,建议使用屏蔽电缆作为总线;而在波特率较低,总线较短时,一般采用斜率控制方式,上升及下降的斜率取决于 Rs的阻值,实验数据表

明15~200 kΩ为 Rs较理想的取值范围。在这种方式下,可以使用平行线或双绞线作为总线,在此选用 R1 1的阻值为47 kΩ。
⑤总线两端应接有两个120Ω的电阻,这对于匹配总线阻抗起着相当重要的作用,否则会使数据通信的抗干扰及可靠性大大降低,甚至无法通信。选用两个电阻 R8 1、R9 1串联使阻值达到 120Ω左右。

2.4 基于 ADS930的8位30 MHz采样速率的ADC模块

2.4.1 ADS930简介

ADS930 是 TI公司生产的高速流水线型模/数转换器(ADC),采用3~5 V电源供电,芯片内部包含有一个宽带跟踪/保持器、一个8位ADC和内部基准,信号输入范围为1~2V,具有30MHz的采样速率。 ADS930采用数字误差校正技术,具有优良的差分线性,低失真和高信噪比,采用 SSOP-28封装。
ADS930的内部结构如图2-16所示,引脚端封装形式如图 2-17所示,引脚端功能如表2-7所列,时序图如图2-18所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4.2 基于 ADS930的 ADC模块电路和 PCB

基于 ADS930的ADC模块电路原理图 和 PCB图如图2-19所示。模块中采用宽带双运放MAX4016作为前级信号调理电路,其中一路作为电压跟随。F_R1放大倍数,F_R5 调节直流偏置。
在这里插入图片描述
在这里插入图片描述
模块调试步骤如下:
①通过 F P3口加上±5 V电源,注意极性;
②将信号发生器输出的正弦信号(频率可达25 MHz,幅值范围-5 V≤Uᵢ≤+5 V)加在 F P1口;
③调节F R1(调节增益,顺时针增大,反之减少)和 F R5 电位器(调节直流偏移量,顺时针增大,反之减少),使加到 AD930的输入信号电压范围处于 1.0~2.0 V。

2.5 基于MCP3202的12位ADC模块

2.5.1 MCP3202简介

MCP3202 是 Microchip公司生产的一款具有片上采样和保持电路的 12位逐次逼近型模/数转换器(ADC)。MCP3202 可被编程为单通道伪差分输入对或双通道单端输入。差分非线性 DNL(Differential Nonlinearity)规定为±1 LSB,积分非线性

INL(Integral Nonlinearity)为±1 LSB。 具有一个3线SPI 兼容接口,可以与符合题协议的简单串行接口与器件通信。在 5 V和2.7 V工作电压下,器件的转换速率是高分别为 100 kSPS和 50 kSPS。 MCP3202器件的工作电压范围为 2.7~5.5 V.1作电流为 500 μA,待机电流为375 pA。
MCP3202 的内部结构方框图如图2-20所示,引脚端封装形式如图 2-21所示,时序图如图2-22所示。
在这里插入图片描述

MCP3202的引脚端功能如下。
引脚端1,CS/SHDN:片选/关断控制输入;
引脚端2,CH0:通道0模拟输入;
引脚端3,CH1:通道 1模拟输入;

引脚端4, Vss:接地;
引脚端5,DIN:串行数据输入;
引脚端6, Dour:串行数据输出;
引脚端7,CLK:串行时钟;
引脚端8, 电源和参考电压输入。

基于 MCP3202的ADC模块电路和PCB
1路输入的 MCP3202 ADC模块电路和 PCB
基于 MCP3202 的 ADC模块电路原理图和 PCB图如图2-23所示。如果输入到 ADC 的信号源不是低阻抗源,则必须对它进行缓冲处理,否则将产生不精确的转换结果。模块前端使用了 MCP601运算放大器来驱动MCP3202的模拟输入端。该放大器的低阻抗输出被用作转换器的输入,并提供了一个用于消除高频噪声的有源低通滤波器,来消除任何可能与转换结果混叠的信号。
在这里插入图片描述
在这里插入图片描述
2.2 路输入的MCP3202 ADC模块电路和PCB
2路输入的MCP3202 ADC模块电路原理图和PCB图如图2-24所示。
在这里插入图片描述
在这里插入图片描述

2.6 基于DAC904 14位165 MSPS的DAC模块

2.6.1 DAC904简介

DAC904是TI公司生产的高性能数/模转换器,具有14位的分辨率、165MSPS的输出更新速率。 DAC904 的工作电压为 2.7~5.5 V,5 V时功耗只有170 mW, SFDR 在以100 MSPS 20 MHz输出时可达 64 dB,具有内部基准,也可以选择外部基准,采用 TSSOP-28或SO-28封装。
DAC904的引脚端封装形式如图 2-25所示,引脚功能如表 2-8所列,时序图如图2-26所示,内部结构与典型连接如图2-27所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
DAC900的内部结构包括1.24 V内部基准源、10位数/模转换内核、分段开关、 LSB开关和电流源等。DAC900转换时间典型值<40 ns,在 1个工作周期后转换完成。内部基准引脚17主要用来连接外部旁路电容,典型值为0.1μF。输入DAC900的时钟既可以是+5 V也可以是+3 V的 CMOS逻辑电平。当高速转换时,推荐使用占空比为50%的时钟信号,以满足高性能的需要。但是,DAC900可以在占空比为40%~60%的时钟信号下工作而性能几乎保持不变。

2.6.2 基于DAC904的DAC模块电路和PCB

基于DAC904的DAC模块电路和PCB图如图2-28所示。
在这里插入图片描述
在这里插入图片描述

2.7 基于THS5661 12位100 MSPS的DAC模块

2.7.1 THS5661简介

THS5661是TI公司生产的低功耗CMOS数字模拟转换器(DAC),具有12位分辨率,100 MSPS 的数据更新速率,1ns的建立/保持时间,具有1.2 V片上基准,2~20mA的差分可调节的电流输出,同时支持单端和差分应用,兼容3V和5 V CMOS数字接口。 在5 V电源电压时功耗为 175 mW,在睡眠模式时为25 mW,采用 SOIC-28和 TSSOP-28封装。
THS5661的封装形式、内部结构和时序图如图2-29所示。
在这里插入图片描述
############

THS5661的引脚功能如下所示。
AGND:模拟电路地;
AVDD:模拟电路电源电压(4.5~5.5 V);
BIASJ:满刻度输出电流偏置;
CLK:外部时钟输入,输入数据在时钟的上升沿锁存;
COMP1:补偿和退耦连接点,需要连接一个0.1μF 的电容器到
COMP2:内部偏置接点,需要连接一个0.1μF 的电容器到模拟地;
D[11:0]:数据位输入0~11;D11是最高有效位(MSB),D0 是最低有效位(LSB);
DGND:数字电路地;
DVɒD:数字电路电源电压(3~5.5 V);

AGND时,使用内部基准;当内部基准输出时,需要连接一个0.1μF 的电容器到模
拟地;
EXTLO:内部基准地,当不使用内部基准时,连接到
IOUT1:DAC 电流输出,当所有输入位为1时,满刻度输出;
IOUT2:DAC 电流输出,当所有输入位为0时,满刻度输出;
MODE:模式选择,如果这个引脚端被浮置或者连接到 DGND,则选择模式0;

NC:未连接;
SLEEP:睡眠模式控制,异步硬件电源低功耗控制,高电平有效(5ms)。

2.7.2 基于THS5661的DAC模块电路和 PCB

基于 THS5661的 DAC模块电路原理图和 PCB图如图2-30所示。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.8 基于TLV5618的双12位DAC模块

2.8.1 TLV5618简介

TLV5618是 TI公司生产的带有缓冲输入的、可编程的、双路12位数/模转换器(DAC),具有可编程的建立时间,快速模式为 3 μs,慢速模式为 10μs,3线串行接口,使用5V单电源工作。采用8引脚PD或者 JG封装,以及20引脚 FK封装。
TLV5618的8引脚封装形式如图2-31所示,内部结构如图2-32所示,时序图如图2-33所示。
在这里插入图片描述
在这里插入图片描述
OUTA:DAC A模拟电压输出;
OUTB:DAC B模拟电压输出;
REF:模拟基准电压输入;
SCLK:串行接口时钟输入;
VDD:电源输入。
################3

2.8.2 基于 TLV5618的DAC模块电路和PCB

基于 TLV5618的 DAC模块电路原理图和 PCB图如图2-34所示。
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47567401/article/details/131350508