新闻中心

EEPW首页 > 嵌入式系统 > 80C196MC的外设事务服务器及其应用

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

——
作者:福州大学 唐爱民 胡金高时间:2007-08-21来源:单片机与嵌入式系统应用收藏

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

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

引言

  变频器在工业现场中越来越广泛。为了能实现整个自动化系统的协调控制,同时能监视多台变频器的运行状况,方便地对单一变频器或多台变频器实行启停、正反转、升降速、参数设置等操作是非常必要的。本文介绍利用变频器的主控芯片内的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完成后的结果处理。

  ③在中,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 通信协议

  上位机(计算机)与下位机(变频器)之间每次通信均是7个字节,每个字节8位。其通信协议格式如下所示:

STX ADDR CM1 CM2 DATA1 DATA2 BCC
报头 地址 命令1 命令2 数据1 数据2 异或校验

  其中,报头STX=02H,地址ADDR为下位机(变频器)的编号,BCC为各帧数据异或后的结果。下面结合不同的操作分别介绍其它各帧的含义。

3.1 读数据

  根据变频器参数的不同使用级别,将其参数分为F、P、E三级数据:F组数据主要为用户常用的一级参数,如给定频率等;P组数据为专业用户或厂内的整定数据,如闭环PID参数等;E组数据为显示及当前状态的临时参数与数据,如输出频率、输出速度等。

  CM1:0FXH(X表示变频器参数组号)

  F0:读取F组数据

  F1:读取P组数据

  F2:读取E组数据

  CM2:表示参数在组内的代号

  DATA1、DATA2:建议写入00

3.2 写数据

  CM1:0EXH(X表示变频器参数组号)

  CM2:含义同读数据

  DATA1:数据高位字节

  DATA2:数据低位字节

3.3 读/写控制

  CM1:0CCH

  CM2:控制字节,其格式如下所示:

CON FEQ STA STOP FORE BACK UP DOWN

  各位含义如表1所列。

表1

CON 1控制字节有效 0控制字节无效
FEQ 1频率值有效 0频率值无效
STA 1启动 0状态不变
STOP 12停机 0状态不变
FORE 1正转 0状态不变
BACK 1反转 0状态不变
UP 1升速 0状态不变
DOWN 1减速 0状态不变

  当CON=1且FEQ=1时,DATA1、DAT2中的数据为运行状态控制的有效频率值;否则,数据无效。

3.4 应答

  下位机(如变频器)接收到上位机(即PC机)的完整的7个字节数据后,除上位机广播通信外均应作出应答。如果异或校验无误,其应答格式同接收到的数据格式,只是DATA1、DATA2两位为上位机要访问参数码的当前值;若异或校验有误,则发回出错帧:

  STR ADDR 0DH 0DH 0FFH 0FFH BCC。

4 小结

  变频器通过采用80C196MC中的PTS SIO与计算机通信后,可在计算机上实现对变频器的状态显示、参数修改、在线操作以及优化控制等远程控制功能。这样,现场的操作在控制室就可以完成了,可以最大限度地减轻操作人员的负担,改善工作环境,提高企业的自动化水平。同时由于采用PTS方案,大大减少了CPU的开销。

 



评论


相关推荐

技术专区

关闭