基于TMS320F2812集中供电系统的串口通信设计
发布时间:2008/5/29 0:00:00 访问次数:910
摘要:本文介绍了tms320f2812 串行通信接口模块sci的原理和应用.设计了集中供电系统中pc 和tms320f2812 的串行通信接口电路,用c语言编程实现了数据的发送和接收。
关键词:tms320f2812;集中供电;串口通信接口
引言
集中供电系统是电量的自动计量及管理的发展趋势,它将促进电力系统的潜能得到最大限度的发挥。
本集中供电系统利用rs-485通信,网络应用计算机、通信技术等,以dsp为核心,将智能计量与通信控制单元有机结合起来。
tms320f2812串行通信接口概述
tms320f2812串行通信接口(sci)是一个双线通信异步串行通信接口。为减少串口通信时cpu的开销,f2812的串口支持16级接收和发送fifo。串行通信接口支持与cpu以及其它使用非归零格式的异步外设之间的异步串行数字通信。它的接收器和发送器都是双级缓冲的,有各自独立的控制位与中断位,都可以同时工作在全双工模式下。为保证数据的完整性,串行通信接口对接收的数据进行间断检测、奇偶性、超时和帧错误检查。串行通信接口可以通过16位的波特率选择寄存器,设置多达65000种通信速度。tms320f2812的sci和以往的dsp的sci相比具有两个特点:一是传送、接收都具有独立的fifo;二是波特率可以自动检测。
集中供电系统串行通信硬件设计
本文提出了一种以rs-485协议为基础,作为网络信息控制中心的pc为上位机,采用tms320f2812为下位机的集中供电系统,f2812负责采集实时数据,然后通过串行口,再经过rs-485接口实现电平转换,将数据上传给控制中心的上位机,上位机负责数据的处理。
rs-232在现代网络通信中已暴露出数据传输速度慢、传输距离短、接口处各信号间容易产生干扰等缺点。由于一般pc上提供的是标准的rs-232(串行接口)。因此,需要rs-232c/rs-485转换器进行接口转换。本系统用瑞赛特8520将rs-232信号转换成隔离的rs-485信号,无需改变pc的任何硬件和软件。rs-485接口采用的是差分传输方式,具有一定的抗共模干扰能力,但当共模电压超过rs-485接收器的极限接收电压,即大于+12v或小于-7v时,接收器就再也无法正常工作了,严重时甚至会烧毁芯片和仪器设备,因此,采用光电隔离器件是一种简单而有效的办法。
本系统采用max485完成rs-485标准接口通信。max485是一种差分平衡型收发器,它采用单一电源+5 v工作,额定电流为300ma,采用半双工通信方式。它完成将ttl电平转换为rs-485电平的功能。内部含有一个驱动器和接收器,驱动器有过载保护功能。ro和di端分别为接收器的输出和驱动器的输入端,连接时只需分别与tms320f2812的scirxd和scitxd相连即可;/re和de端分别为接收和发送的使能端,当/re为逻辑0时,器件处于接收状态;当de为逻辑1时,器件处于发送状态,因为max485工作在半双工状态,所以只需用tms320f2812的一个引脚控制这两个引脚即可;a端和b端分别为接收和发送的差分信号端,当a引脚的电平高于b时,代表发送的数据为1;当a的电平低于b端时,代表发送的数据为0。在与tms320f2812连接时,接线非常简单,只需要一个信号控制max485的接收和发送即可,同时在a和b端之间加匹配电阻,一般可选100w的电阻。
通信协议
保证pc与多个tms320f2812的成功通信,通信双方除了要规定字符格式和波特率外,还要有一系列的约定,即要定义好软件通信协议。例如,作为发送方,必须知道什么时候发送信息,发什么,对方是否收到,收到的内容有没有错,要不要重发,怎样通知对方结束等;作为接收方,必须知道对方是否发送了信息,发的是什么,收到的信息是否有错,如果有错怎样通知重发,怎样判断结束等。
pc与tms320f2812间的通信协议如下:
(1) 通信双方的串行波特率为9600bps;
(2) 帧格式:8位数据位,l位停止位,无奇偶校验;
(3) 传送方式:pc采用查询方式收发数据;tms320f2812采用中断方式收发数据;
(4) 握手方式:采用软件握手。
集中供电系统通信软件设计
tms320f2812有较强的串行通信能力。本设计中,发送数据采用的是查询方式,接收数据采用的是中断方式。当上传数据时,在中断程序或其他的子程序中置发送标志位,在主程序中查询该标志,如成立则发送数据,否则跳过发送程序,执行其他的程序。在中断方式下,dsp启动串行口后就不再询问它的状态了,依然执行自己的程序,实现dsp与串行口的并行工作。当串行口产生中断时,先向dsp申请中断,dsp响应中断后就暂时中断自己的程序,执行相应的串口中断服务程序,执行完后又返回主程序,它能使信息得到及时处理。
软件采用c语言编程。
在程序的开始应先对其中一些寄存器进行初始化。相关的源程序不在此赘述了。
数据的接收和发送程序
在
摘要:本文介绍了tms320f2812 串行通信接口模块sci的原理和应用.设计了集中供电系统中pc 和tms320f2812 的串行通信接口电路,用c语言编程实现了数据的发送和接收。
关键词:tms320f2812;集中供电;串口通信接口
引言
集中供电系统是电量的自动计量及管理的发展趋势,它将促进电力系统的潜能得到最大限度的发挥。
本集中供电系统利用rs-485通信,网络应用计算机、通信技术等,以dsp为核心,将智能计量与通信控制单元有机结合起来。
tms320f2812串行通信接口概述
tms320f2812串行通信接口(sci)是一个双线通信异步串行通信接口。为减少串口通信时cpu的开销,f2812的串口支持16级接收和发送fifo。串行通信接口支持与cpu以及其它使用非归零格式的异步外设之间的异步串行数字通信。它的接收器和发送器都是双级缓冲的,有各自独立的控制位与中断位,都可以同时工作在全双工模式下。为保证数据的完整性,串行通信接口对接收的数据进行间断检测、奇偶性、超时和帧错误检查。串行通信接口可以通过16位的波特率选择寄存器,设置多达65000种通信速度。tms320f2812的sci和以往的dsp的sci相比具有两个特点:一是传送、接收都具有独立的fifo;二是波特率可以自动检测。
集中供电系统串行通信硬件设计
本文提出了一种以rs-485协议为基础,作为网络信息控制中心的pc为上位机,采用tms320f2812为下位机的集中供电系统,f2812负责采集实时数据,然后通过串行口,再经过rs-485接口实现电平转换,将数据上传给控制中心的上位机,上位机负责数据的处理。
rs-232在现代网络通信中已暴露出数据传输速度慢、传输距离短、接口处各信号间容易产生干扰等缺点。由于一般pc上提供的是标准的rs-232(串行接口)。因此,需要rs-232c/rs-485转换器进行接口转换。本系统用瑞赛特8520将rs-232信号转换成隔离的rs-485信号,无需改变pc的任何硬件和软件。rs-485接口采用的是差分传输方式,具有一定的抗共模干扰能力,但当共模电压超过rs-485接收器的极限接收电压,即大于+12v或小于-7v时,接收器就再也无法正常工作了,严重时甚至会烧毁芯片和仪器设备,因此,采用光电隔离器件是一种简单而有效的办法。
本系统采用max485完成rs-485标准接口通信。max485是一种差分平衡型收发器,它采用单一电源+5 v工作,额定电流为300ma,采用半双工通信方式。它完成将ttl电平转换为rs-485电平的功能。内部含有一个驱动器和接收器,驱动器有过载保护功能。ro和di端分别为接收器的输出和驱动器的输入端,连接时只需分别与tms320f2812的scirxd和scitxd相连即可;/re和de端分别为接收和发送的使能端,当/re为逻辑0时,器件处于接收状态;当de为逻辑1时,器件处于发送状态,因为max485工作在半双工状态,所以只需用tms320f2812的一个引脚控制这两个引脚即可;a端和b端分别为接收和发送的差分信号端,当a引脚的电平高于b时,代表发送的数据为1;当a的电平低于b端时,代表发送的数据为0。在与tms320f2812连接时,接线非常简单,只需要一个信号控制max485的接收和发送即可,同时在a和b端之间加匹配电阻,一般可选100w的电阻。
通信协议
保证pc与多个tms320f2812的成功通信,通信双方除了要规定字符格式和波特率外,还要有一系列的约定,即要定义好软件通信协议。例如,作为发送方,必须知道什么时候发送信息,发什么,对方是否收到,收到的内容有没有错,要不要重发,怎样通知对方结束等;作为接收方,必须知道对方是否发送了信息,发的是什么,收到的信息是否有错,如果有错怎样通知重发,怎样判断结束等。
pc与tms320f2812间的通信协议如下:
(1) 通信双方的串行波特率为9600bps;
(2) 帧格式:8位数据位,l位停止位,无奇偶校验;
(3) 传送方式:pc采用查询方式收发数据;tms320f2812采用中断方式收发数据;
(4) 握手方式:采用软件握手。
集中供电系统通信软件设计
tms320f2812有较强的串行通信能力。本设计中,发送数据采用的是查询方式,接收数据采用的是中断方式。当上传数据时,在中断程序或其他的子程序中置发送标志位,在主程序中查询该标志,如成立则发送数据,否则跳过发送程序,执行其他的程序。在中断方式下,dsp启动串行口后就不再询问它的状态了,依然执行自己的程序,实现dsp与串行口的并行工作。当串行口产生中断时,先向dsp申请中断,dsp响应中断后就暂时中断自己的程序,执行相应的串口中断服务程序,执行完后又返回主程序,它能使信息得到及时处理。
软件采用c语言编程。
在程序的开始应先对其中一些寄存器进行初始化。相关的源程序不在此赘述了。
数据的接收和发送程序
在