位置:51电子网 » 技术资料 » 测试测量

80C196MC的外设事务服务器及其应用

发布时间:2008/5/27 0:00:00 访问次数:562

摘要:介绍利用专用于电机控制的16位单片机80c196mc的外设事务服务器pts在变频器中实现异步串行通信的方法。重点介绍pts和普通中断的差别及程序设计中应注意的问题,同时给出通用变频器通信协议及程序框图。

关键词:单片机 变频器 通信

引言

变频器在工业现场中应用越来越广泛。为了能实现整个自动化系统的协调控制,同时能监视多台变频器的运行状况,方便地对单一变频器或多台变频器实行启停、正反转、升降速、参数设置等操作是非常必要的。本文介绍利用变频器的主控芯片80c196mc内的外设事务服务器pts在变频器中实现异步串行通信的方法。

1 关于外设事务服务器pts

1.1 pts和普通中断

90c196mc高性能16位单片机内部“嵌入”了各种以往被认为是“外围设备”的电路。外设事务服务器pts(peripheral transaction server)就是一种被嵌入的“外设”。它是一种微代码硬件中断处理器,对中断可提供一种类似于dma(直接存储器访问)的响应,其cpu 的开销比普通中断系统(基于上是一种软件中断服务系统)要少得多。为便于理解pts的工作过程,图1示出了pts和普通中断流程的主要差别。从图1可以看出:

①pts的执行是靠cpu硬件微代码来完成的;而普通中断是靠中断正常的程序,由pc入栈、现场保护、用户服务程序、恢复现场与pc出栈来完成。显然后者对cpu的开支要比前者多得多。

②通常中断所做的是相同的工作,如不断的连续a/d转换、数据组的传递、通信的多字节传递等。pts正利用这点,由一个程序启动pts,让之在pts计数器单元控制下不中断正常程序靠硬件微代码(即类似dma的插入)来分时完成,在pts计数单元完成后转化为一次普通中断,通过普通中断进行一系列pts完成后的结果处理。

③在80c196mc中,pts优先级总是比普通中断优先级要高,并且有近16个中断源,对应用16位的允许位和响应位的字寄存器进行各自控制;同时,pts和普通中断是各位相对应的,这样使得pts完成后转化为一次普通中断就变得很简单。

④在80c196mc中,与pts有关的控制有:总允许位psw.10以及各中断源的选择位ptssel寄存器。其中psw.10通过epts指令置位,允许pts服务。与普通中断有关的控制有:总允许位psw.9以及中断屏蔽寄存器int-mask。

1.2 pts实现串行输入/输出模式

80c196mc没有硬件通用异步收发器uart,但是利用专门的pts模式可以方便且低软件开销地实现串行输入和输出功能。既可实现异步sio(asio)功能,也可实现同步sio(ssio)功能。采用16mhz晶振,用pts完成波特率为9600的半双工串行输入输出时,cpu的的开销只有4%左右。

pts sio模式占用2个控制块,每个控制块包含8个8位寄存器,如图2所示。

这2个控制块的地址不一定是连续的,但它们都应在寄存器ram区内,控制块首地址都应能被8整除。

2 程序设计采用80c196mc异步串行输入/输出模式实现变频器与计算机之间的通信,其初始化程序主要包括p2端口和定时器的初始化以及pts sio模式初始化等。

首先将接收端的capcomp1设置为下降沿捕获方式。当capcomp1捕捉到起始位的前沿后,进入接收中断服务子程序,其程序流程如图3所示。

下面介绍程序中应注意的要点:

①接收程序中,采用epa capcomp1捕获/比较模块。它首先利用其捕获功能造成1次普通中断,而不是1个pts周期。在这次启动中断中,把capcomp1模块切换成比较方式,启动pts周期。

②10个pts周期后,将产生1次end of pts中断。该中断与启动断共享1个中断向量,因此,在该中断服务程序中必须判断本次中断是启动中断还是end-of-pts中断。区分的依据可以是capcomp1 con.6(ce位):若ce=0,模块为捕获方式,表明是启动中断;反之,模块已切换为比较方式,表明是end-of-pts中断。

③end-of-pts中断服务中,必须禁止捕获/比较模块,并清除相应中断是挂位。为继续接收或发送后续的数据帧,在退出中断前必须重新设置捕获/比较模块的方式以及ptscb中的ptscount-ptscon1、data等寄存器;必须重置ptssel的相应位,允许相应的pts服务。

④在发送任何数据前,用于txd的端口(p2.0)引脚必须初始化为“1”;向txd脚写“0”,即上当于发起始位,整个数据的传输过程就开始了。

3 通信协议

上位

摘要:介绍利用专用于电机控制的16位单片机80c196mc的外设事务服务器pts在变频器中实现异步串行通信的方法。重点介绍pts和普通中断的差别及程序设计中应注意的问题,同时给出通用变频器通信协议及程序框图。

关键词:单片机 变频器 通信

引言

变频器在工业现场中应用越来越广泛。为了能实现整个自动化系统的协调控制,同时能监视多台变频器的运行状况,方便地对单一变频器或多台变频器实行启停、正反转、升降速、参数设置等操作是非常必要的。本文介绍利用变频器的主控芯片80c196mc内的外设事务服务器pts在变频器中实现异步串行通信的方法。

1 关于外设事务服务器pts

1.1 pts和普通中断

90c196mc高性能16位单片机内部“嵌入”了各种以往被认为是“外围设备”的电路。外设事务服务器pts(peripheral transaction server)就是一种被嵌入的“外设”。它是一种微代码硬件中断处理器,对中断可提供一种类似于dma(直接存储器访问)的响应,其cpu 的开销比普通中断系统(基于上是一种软件中断服务系统)要少得多。为便于理解pts的工作过程,图1示出了pts和普通中断流程的主要差别。从图1可以看出:

①pts的执行是靠cpu硬件微代码来完成的;而普通中断是靠中断正常的程序,由pc入栈、现场保护、用户服务程序、恢复现场与pc出栈来完成。显然后者对cpu的开支要比前者多得多。

②通常中断所做的是相同的工作,如不断的连续a/d转换、数据组的传递、通信的多字节传递等。pts正利用这点,由一个程序启动pts,让之在pts计数器单元控制下不中断正常程序靠硬件微代码(即类似dma的插入)来分时完成,在pts计数单元完成后转化为一次普通中断,通过普通中断进行一系列pts完成后的结果处理。

③在80c196mc中,pts优先级总是比普通中断优先级要高,并且有近16个中断源,对应用16位的允许位和响应位的字寄存器进行各自控制;同时,pts和普通中断是各位相对应的,这样使得pts完成后转化为一次普通中断就变得很简单。

④在80c196mc中,与pts有关的控制有:总允许位psw.10以及各中断源的选择位ptssel寄存器。其中psw.10通过epts指令置位,允许pts服务。与普通中断有关的控制有:总允许位psw.9以及中断屏蔽寄存器int-mask。

1.2 pts实现串行输入/输出模式

80c196mc没有硬件通用异步收发器uart,但是利用专门的pts模式可以方便且低软件开销地实现串行输入和输出功能。既可实现异步sio(asio)功能,也可实现同步sio(ssio)功能。采用16mhz晶振,用pts完成波特率为9600的半双工串行输入输出时,cpu的的开销只有4%左右。

pts sio模式占用2个控制块,每个控制块包含8个8位寄存器,如图2所示。

这2个控制块的地址不一定是连续的,但它们都应在寄存器ram区内,控制块首地址都应能被8整除。

2 程序设计采用80c196mc异步串行输入/输出模式实现变频器与计算机之间的通信,其初始化程序主要包括p2端口和定时器的初始化以及pts sio模式初始化等。

首先将接收端的capcomp1设置为下降沿捕获方式。当capcomp1捕捉到起始位的前沿后,进入接收中断服务子程序,其程序流程如图3所示。

下面介绍程序中应注意的要点:

①接收程序中,采用epa capcomp1捕获/比较模块。它首先利用其捕获功能造成1次普通中断,而不是1个pts周期。在这次启动中断中,把capcomp1模块切换成比较方式,启动pts周期。

②10个pts周期后,将产生1次end of pts中断。该中断与启动断共享1个中断向量,因此,在该中断服务程序中必须判断本次中断是启动中断还是end-of-pts中断。区分的依据可以是capcomp1 con.6(ce位):若ce=0,模块为捕获方式,表明是启动中断;反之,模块已切换为比较方式,表明是end-of-pts中断。

③end-of-pts中断服务中,必须禁止捕获/比较模块,并清除相应中断是挂位。为继续接收或发送后续的数据帧,在退出中断前必须重新设置捕获/比较模块的方式以及ptscb中的ptscount-ptscon1、data等寄存器;必须重置ptssel的相应位,允许相应的pts服务。

④在发送任何数据前,用于txd的端口(p2.0)引脚必须初始化为“1”;向txd脚写“0”,即上当于发起始位,整个数据的传输过程就开始了。

3 通信协议

上位

相关IC型号

热门点击

 

推荐技术资料

音频变压器DIY
    笔者在本刊今年第六期上着重介绍了“四夹三”音频变压器的... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!