基于CAN总线的多用户电能表设计
[09-12 16:04:57] 来源:http://www.88dzw.com 单片机学习 阅读:8264次
文章摘要:图5 计量存储显示主程序框图3.2 CAN通信模块程序设计CAN通信模块主程序包括看门狗的初始化子程序(X5045_Rstdog()); 串行通信初始化子程序(Serial_init()); SJA1000 初始化程序子设计(CAN_Init()); 发送程序子设计(CAN_Send_Trans()); 以及接收程序设计子程序(CAN_Rece_Trans())。CAN通信模块上电或复位后,先串行通信初始化程序负责设置波特率,读取电能表表号等;接着CAN初始化程序主要是对SJA1000寄存器的初始化,包括:定义BasicCAN、验收屏蔽码、总线的位速率、位周期内的采样点和采样数量、管脚RX0、
基于CAN总线的多用户电能表设计,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com图5 计量存储显示主程序框图
3.2 CAN通信模块程序设计
CAN通信模块主程序包括看门狗的初始化子程序(X5045_Rstdog()); 串行通信初始化子程序(Serial_init()); SJA1000 初始化程序子设计(CAN_Init()); 发送程序子设计(CAN_Send_Trans()); 以及接收程序设计子程序(CAN_Rece_Trans())。
CAN通信模块上电或复位后,先串行通信初始化程序负责设置波特率,读取电能表表号等;接着CAN初始化程序主要是对SJA1000寄存器的初始化,包括:定义BasicCAN、验收屏蔽码、总线的位速率、位周期内的采样点和采样数量、管脚RX0、TX0的输入输出模式和配置。这些完成后,要清除SJA1000的复位请求标志进入工作模式, SJA1000准备进行报文的发送和接收;最后程序进入循环等待中。当上位机有指令下达,引起中断,调用中断函数和相关的发送接收子程序。
该主程序设计采用基于Keil C的C语言进行编程,调用基本库函数来实现各种功能。
3.3 断电模块程序设计
断电模块上电或复位后,程序先进行串行端口波特率初始化等,接着进入循环等待状态,串行中断发生时,调用串行通信中断函数,由P3.0端口接收数据并解码,对P3.2-P3.4端口赋值,接着等待74LS138反应时间后,对P0端口赋值,再等待外部芯片反应时间后,退出中断函数。
结束语
随着科学技术的发展,智能产品设计更注重于人性化的特点。本电能表设计形成产品后市场前景广阔, 对于我国电力市场的规划管理,小区生活品质提升将起到积极的作用。
本文作者创新点:1.在多用户电能表中采用成熟的CAN总线通信技术;2.在硬件和软件方面增加了可透支用电的人性化设计。
《基于CAN总线的多用户电能表设计》相关文章
- › 基于CAN总线的电池管理系统结构框图
- › 基于CAN总线的分布式位置伺服系统设计
- › 基于CAN总线的智能型温湿度采集系统设计
- › 基于CAN总线接口的红外检测系统的设计思路
- › 基于Cadence的高速PCB设计
- › 基于CAN核的四冗余通信板设计与仿真
- 在百度中搜索相关文章:基于CAN总线的多用户电能表设计
- 在谷歌中搜索相关文章:基于CAN总线的多用户电能表设计
- 在soso中搜索相关文章:基于CAN总线的多用户电能表设计
- 在搜狗中搜索相关文章:基于CAN总线的多用户电能表设计