本科生课程设计(论文)
寄存器;
可读/访问的错误计数器; 可编程的错误报警限; 最近一次错误代码寄存器;
对于每~种CAN总线错误都能产生不同的出错中断; 仲裁丢失中断;并带有详细丢失仲裁时不重发; 只听模式(监视CAN总线,无应答,无出错标志); 支持热拔插(对总线无干扰的传输速率检测); 自身发送报文接收(自接收请求); 硬件禁止CLKOUT输出。
3.7.2 光电耦合器
88由于总线传输距离远,现场环境干扰大,为了增强抗干扰能力,在SJA1000U?A3与PCA82C250间采用高速光耦6N137实现总线电气隔离。为了有效隔离,6N137122CA082T延迟时间,传输延迟时间短。6N137引脚图如下图3.8所示。
U?A1两端的电源使用B0505S-1W隔离,而且可以减少CAN总线有效回路信号的传输CA082T44
326N137INVDDVCCENOUTGND8765图3.8 6N137引脚图
U?A88813.7.3 CAN收发器 U?A32U?A3U?A183122 CAN总线收发器实现了物理层的功能,一方面将控制器发送信号转化为符
2合CAN物理层标准的信号,进行放大、传输;另一方面将总线上收到的信号转
41CA082TCA082T变为控制器所能接收的电平信号。其本质是提供了CAN控制器与物理总线之间CA082T本设计的CAN收发器选择PCA82C250, PCA82C250引脚图如下图3.9所示。
844CA082T4的接口:即为总线提供差分信号的发送功能,为控制器提供差分信号的接收功能。
82C2501453TXDRXDVREFVCCCANHCANLRSGND7682U?A3128图3.9 PCA82C250引脚图
3U?A111
CA082T42CA082T4P13DCLKU3AP22P2323229610ADD-BADD-CALEENABLESTARTCLOCKVCC4IN-75LM35R18500KR171K111IN-66SQRQ4P27P23U1A312LM324INref(-)ref(+)1612VCCVoutGND23
P00P01P02P03P04P05P06P07AT89C52P20P21P22P23P24P25P26P2739383736353433322122232425262728AD0AD1AD2AD3AD4AD5AD6AD7P20P21P22P2312CLK10K本科生课程设计(论文)
R16CAN接口电路如图3.10所示。
AD7AD6ALEP26RDWR1234567910171682115AD6AD5AD7AD4ALEAD3CSAD2RDAD1SJA1000WRAD0CLOCKOUTTX0XTAL1TX1XTAL2RX0RSTRX1INTVDD1VSS1VDD2VSS2MODEVSS3VDD32827262524231314192022181112AD5AD4AD3AD2AD1AD0R8VCC10 6N13732INVDDVCCENOUTGND8765VCC1P26P27R7390 R12390C5SETRXDTXDALE/PPSEN101130ALE29390R96.2K8765 100nF
1453R8TXDRXDVREFVCCCANHCANLRSGND7682INT0R13R145R1547k5CANBUSR104.7KC4100pFVCCENOUTGND6N137INVDD32R11390C730pFD1C830pFD2C682C50100nF图3.10 CAN接口电路
3.8 电源电路
由于单片机最小系统、温湿度传感器、A/D转换器和CAN驱动发送模块都需要供电,而且电压不同,故将220V交流电经变压、滤波后,经稳压器LM7812输出12V电压给放大器供电,后经LM7805输出VCC电压给单片机、温湿度传感器和总线控制器供电,而光电耦合电路要实现与CAN总线电气隔离,故将LM7805后接B0505S-1W进行电源隔离VCC1给耦合器和收发器供电。电源电路如图3.11所示。
T1220V~11D3C9GNDGND
VinL7812Vout3+12V1VinL7805Vout3VCC21VinGNDB0505S+VOV43R22VCC1C11C12212V~42C102200uF0.1uF0.1uFC132C14C1524035uF2200uF0.1uF2200uFTRANS13BRIDGE1J2LCD1602ALE1112131415161234567891053图3.11 电源电路
VLR\\W\\RSGNDVDDU2AAD0AD1AD2AD3AD4AD5AD6AD7P27P20P21P22P23RQ6RSRWEAND0AD1AD2AD3AD4AD5AD6AD7Q+5VR1910KR2010KR2110KSW-PBS1SW-PBS2SW-PBS3S6S5S4SW-PBP15SW-PBP14SW-PBR22kQP17P16SR42120191881514177252423229610END0D1D2D3D4D5D6DL7+BDCLKBL-VCCmsb2-12-22-32-42-52-62-7lsb2-8EOCADD-AADD-BADD-CALEENABLESTARTCLOCKADC0809IN-0IN-1IN-2IN-3IN-4IN-5IN-6IN-715P13DCLK32U3A6SQ4P27P23ref(-)ref(+)12
12CLKU1RS139AD0
本科生课程设计(论文)
第4章 软件设计
节点程序主要包括主程序、CAN控制器初始化程序、湿度检测中断程序、接收程序和发送程序。其中主程序主要完成中断初始化、键盘扫描、温度检测和温湿度显示及报警等功能;CAN控制器初始化程序主要完成SJA1000的初始化设置;湿度检测中断程序完成湿度传感器的脉冲计数及对应适度的计算;接收程序由单片机的外部中断完成,主要实现节点接收报文的处理;发送程序主要实现节点报文的发送。
4.1 主程序流程图
主程序要完成中断初始化,并调用SJA1000初始化程序,对矩阵键盘的扫描并存储设定的温湿度上下限及相应的控制信息,对温度信号进行采样,同时将节点采集的温湿度数据帧发送到总线上,并将温湿度值和报警信息送往LCD1602液晶显示器。主程序流程图如下图4.1所示。
图4.1 主程序流程图
13
本科生课程设计(论文)
4.2 SJA1000初始化程序流程图
SJA1000控制器初始化主要完成工作方式设置、接收滤波方式设置、接收屏蔽寄存器和接收代码寄存器的设置、波特率参数设置和中断允许寄存器设置等。SJA1000初始化程序流程图如下图4.2所示。
图4.2 SJA1000初始化程序流程图
4.3 发送程序流程图
发送温湿度数据时,将待发送的数据按特定格式组合为一帧报文,送入SJA1000发送缓冲区,然后启动SJA1000发送。发送程序流程图如下图4.3所示。
图4.3 发送程序流程图
14
本科生课程设计(论文)
4.4 接收程序流程图
数据帧的接收在外部中断服务程序里面完成,其中当SJA1000将总线驱动器收到的数据转换存入接收缓冲区后即给单片机产生中断,提示单片机对通信数据进行接收。接收程序流程图如下图4.4所示。
图4.4 接收程序流程图
15