主机负责监控各个从机,向从机发布指令,并接收处理从机传来的检测数据。从机执行主机的指令,显示运行信息,向主机传送检测数据。CAN接口电路负责各节点间的串行通信。两只125Ω电阻作为CAN线路的匹配电阻。本文着重介绍CAN总线的设计使用以及点阵显示电路的设计原理,其他功能电路的介绍从略。
CAN总线硬件设计
CAN接口电路如图2所示, SJA1000是PHILIPS公司生产的独立CAN通信控制器,SJA1000集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,该控制器具有多主结构、总线访问优先权、硬件滤波等特点。PCA82C250是CAN 协议控制器和物理总线的接口,它可以提供总线的差动发送能力和接收能力,高速应用可达1M baud,最多可挂110个节点。
CAN总线初始化设计
要使SJA1000正常工作,必须先对其作初始化,这是一个重点。对SJA1000的操作是由读写其片内的控制寄存器实现的。待SJA1000硬件复位完成后,单片机就可以初始化SJA1000,初始化程序如下: INITISJA1000:
RESET:
CONFIG:
OPERATE_MODE:
CONFIG1:
CLR EX0 ;关中断
MOV DPTR , #0000H
MOV A , #01H
MOVX
MOV A , #40H
MOV DPTR , #001FH
MOVX @DPTR , A ;CDR=40H
MOV A , #13H
MOV DPTR , #0004H
MOVX @DPTR , A ;设ACR接受代码=13H
MOV A , #00H
MOV DPTR , #0005H
MOVX @DPTR , A ;接受屏蔽寄存器(AMR)=00H
MOV A , #01H
MOV DPTR , #0006H
MOVX @DPTR , A ; BTR0=01H
MOV A , #1CH
MOV DPTR , #0007H
MOVX @DPTR , A ; BTR1=1CH
MOV A , #1AH
MOV DPTR , #0008H
MOVX @DPTR , A ; OCR=1AH
MOV A , #00001100B
MOV DPTR , #0001H
MOVX @DPTR , A ; GTS=0, CDO=1, RRB=1
MOV DPTR , #0000H
MOV A , #00011010B
MOVX @DPTR , A ;进入工作模式
SETB EX0 ;开中断
RET
#p##e#
这里SJA1000的首地址是0000H。只有SJA1000进入复位工作模式,才可以初始化相应的寄存器。时钟分频寄存器(CDR)设定值为40H,表示选BasicCAN工作模式,忽略CAN输入比较器和不用TX1输出做专用接收中断输出。接收代码寄存器(ACR)和接收屏蔽寄存器(AMR)组成接收过滤器,接收代码位(AC.7-AC.0),接收屏蔽位(AM.7-AM.0)和信息识别码的八位(ID.10-ID.3)满足下述方程,该信息才会被接收:
[(ID.10-ID.3)≡(AC.7-AC.0)] ∨(AM.7-AM.0)≡11111111
总线时序寄存器0(BTR0)可决定波特率预置值和同步跳转宽度的值,BTR0=01H表示波特率设为250Kbps(用16M晶振)。总线时序寄存器1(BTR1)决定位周期宽度,采样点位置和在每个采样点的采样次数。系统中各节点的BTR0、BTR1应设为相同,否则不能互相通信。输出控制寄存器OCR决定了不同输出驱动配置的建立。设置完这些寄存器后,要将SJA1000设为正常工作模式,并按需要使能其相应的中断位。SJA1000中各控制寄存器的详细说明和用法可参考文献1。
CAN总线通信程序设计
各节点间的通信可采用中断方式或查询方式,本控制系统采用中断方式通信。各个节点之间的指令、数据交换通过下面这个子程序模块完成的。
显示电路各节点的一个重要组成部分是显示电路。作为人机交互界面,显示电路告诉人们系统当前运行信息。显示电路结构图如图3所示。
单片机的任务是根据上位主机的命令产生显示数据及控制信号。16行×64列的LED显示点阵由点阵块组成。显示电路采用1/16扫描方式,显示点阵的一行对应一路行选通信号,各行的同一列共用一个列选通信号,这样既满足显示要求,又可以简化电路。行驱动电路主要由74HC163、74HC138、Si4953组成,用以产生行选通信号。74HC163和74HC138构成行译码器,在单片机的控制下,从第一行开始按顺序选通显示点阵各行;Si4953是P沟道MOSFET管,作用是提高行信号的驱动能力。在选通某一行后,该行上各个LED是点亮还是熄灭,由各自的列选通信号决定,其它行的LED则全熄灭。显示电路以这样方法逐行扫描显示点阵,只要整个扫描周期足够快,人们就感觉不到显示闪烁。
驱动电路由74HC595级联组成,前一片74HC595的Q,H引脚连接下一片的SER引脚,各片的SRCLK、SRCLR、RCLK引脚分别并联。单片机的RXD口输出显示数据给第一片74HC595的SER引脚;TXD口发出移位脉冲将串行数据逐位移入74HC595中。在一行数据传输完后,单片机向各个74HC595的SRCLK引脚发一个锁存信号,这行数据就被锁入74HC595的锁存器中,产生对应输入数据的列选通信号。在该行显示期间,同时进行下一行显示数据的传输,这样可以缩短扫描周期。
本文介绍的分布式显示控制系统已应用于电梯控制系统中,其性能稳定、可靠。CAN总线的选用提高了本系统的通信效率和可靠性。CAN总线通信具有可靠性高、通信距离远、速率高、多主结构、错误处理能力强等特点,非常适合分布式系统的串行通信。系统中的显示电路是一个成熟可靠的显示方案,可根据这个设计原理,设计出各种规格要求的点阵显示屏。
上一篇:单片机软件模拟SPI接口
下一篇:基于SJA1000的CAN总线接口电路的设计与实现
推荐阅读最新更新时间:2024-03-16 14:29