基于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.在硬件和软件方面增加了可透支用电的人性化设计。


上一页  [1] [2] [3] 


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行