新闻中心

EEPW首页>嵌入式系统>设计应用> CAN总线在分布式烤烟控制系统中的应用

CAN总线在分布式烤烟控制系统中的应用

作者: 时间:2009-06-19 来源:网络 收藏

3.1 硬件组成
AT89C52是控制器的核心,完成温度和湿度的采样与控制、控制算法运算、键盘扫描、LCD显示、数据通信等功能。
LCD显示器用于现场显示采样的温度及湿度、控制参数设定值等,由于需要显示的内容较少,选用段式显示器;而键盘用于在现场设置控制参数,为了简化接口电路,采用独立式键盘电路,即每个按键占用AT89C52的一位开关量输入。
DS18B20和直流电机控制电路组成温湿度采样与控制电路。DS18B20的控制程序按其规定的时序进行编写,通过执行SETB P1.7(或P1.6)和CLR P1.7(P1.6)即可产生所需要的软件脉冲,从而实现对温湿度的数字化输入;而直流电机的控制通过对P1.5(P1.4)进行控制产生高低电平,再送由三极管和直流继电器组成的电机驱动电路,即可实现对电机的正反转控制,通过传动机构带动火门(或窗门)移动对温度和湿度进行调节。
控制器接口由、6N137和82C250组成,如图3所示。以并行接口芯片和中断形式与AT89C52连接,AT89C52对映射到存储器的有关寄存器进行读写,即可实现SJA1000初始化设置、数据收发、数据校验等操作;6N137组成光电隔离电路以提高系统的抗干扰能力;82C250则提高驱动能力。

3.2 程序设计
控制器程序除了完成定时对温湿度的采样与闭环控制和实现人机接口外,还要对监控计算机通过发送来的远程命令进行响应,以便执行特定的功能。由于系统采用中断方式实现温湿度的定时采样和总线的通信,因此程序包括主程序和中断服务程序两部分,其中定时中断程序较为简单,在此不再详细介绍。
3.2.1 主程序
主程序完成对定时器和CAN总线的初始化,并循环扫描键盘和控制LCD显示。
对CAN总线的初始化主要是对SJA1000的工作方式、接收滤波方式、接收屏蔽寄存器(AMR)、接收代码寄存器(ACR)、波特率参数和中断允许寄存器进行设置,在初始化前必须使SJA1000进行复位模式,当初始化设置完成后,须使SJA1000回到正常工作模式,才能实现正常工作。为增强程序的可读性,在程序执行代码前使用EQU伪指令将SJA1000各寄存器所对应的存储器地址定义成特定的符号。
MOV DPTR,#MOD ;方式寄存器
MOV A,#09H
MOVX @DPTR,A ;使SJA1000进入复位模式
…… ;其他寄存器设置
MOV DPTR,#MOD ;方式寄存器
MOV A,#08H
MOVX @DPTR,A ;使SJA1000进入工作模式
……
3.2.2 中断服务程序
当监控计算机通过CAN总线向控制节点发送数据时,一旦CAN数据帧内的接收方地址与初始化程序中设置的地址匹配时,SJA1000即通过INT1(外部中断)向AT89C52发送中断请求,当AT89C52响应中断请求后立即转向中断服务程序执行,在中断服务程序内进行信息的解释,并进行相应的控制,如传送温湿度数据、修改控制参数等。在对SJA1000接收的信息进行处理前,还需要对总线脱离、错误报警、接收溢出等进行处理。
MOV DPTR,#SR ;状态寄存器地址
MOVX A,@DPTR
ANL A,#0C3H ;读取总线脱离、错误报警、接收溢出、有数据等位
JNZ ERRPROG ;转错误处理程序
…… ;正常处理程序



评论


相关推荐

技术专区

关闭