background image

30

ELEVATOR INDUSTRY

http:www.chinalift.net

检测标志位上,在本例中 CPU 不
仅进行串行通信,还需要响应厅
召唤信号等其他信号,这样严重
影响系统的实时性。

中断方式可以使 CPU 和外设

之间并行工作,在串口部分进行
收发和移位等操作时 CPU 不用干
涉,相对查询法能提高 CPU 的效
率。鉴于系统对实时性要求较高
故选用中断的方式进行,实现高
效、安全的信息传输,提高软件
的效率。在中断方式下串口通信
的基本流程图如上所示。 

3 . 2 、

中断服务

程序设计

及缓冲区

的管理

断 的 方
式 虽 然
满 足 了
实 时 性,
但 同 事
串 口 通
信 软 件
变 得 比
较 复 杂,
需 要 增
加 相 应
的 中 断
服 务 子

( I S R )

以 及 相
关 的 软
件 缓 冲

区管理。

ISR 设 计 的 思 想 为: 根 据 不

同 的 中 断 源, 接 受 或 发 送 数 据,
中断处理代码应该尽量短,只完
成接收 / 发送数据工作。其他工
作在中断服务程序以外的地方进
行。缓冲区的管理办法:每当接
受缓冲寄存器收满一定的字节数
时,出发一次串口接收中断,将

数据转移给一个事先给定的数据
接收缓冲区并计数。校验帧头正
确且计数达到一定时这些数据转
移到数据处理存储取并通知主程
序处理。

四、通信系统的实现

4.1 PLC 的设置

实现上位机与 PLC 通信单元

的通信只需写上位机程序,因为
PLC 本身带有通信程序,只要进
行适当设置就可以通信了。下面
以松下 FP0 可编程控制器为例说
明在 PLC 串行通信之前必要的系
统寄存器设置。

系 统 寄 存 器 412、413、414、

417  和 418 用于设置串行通信方
式和格式。

(1)412: 串行通信方式设置。

设置值为 K1,与计算机相连;

(2)413: 串行通信格式的设

置。设置值为 H1,413  的内容自
动加到发送的数据中,而无需写
入结束符;

(3)414:  串 行 通 信 波 特

率 设 置 值 为 K1, 对 应 波 特 率 为
9600bps;

(4)417、418:417 用 于 串

口接收数据缓冲区起始地址的设
定;418 用于接收数据缓冲区容
量的设定。417、418 的设置范围
依 /01 的型号而定。

4.2  μc/os 操作系统环境下程

序设计的实现

μc/os 称 的 上 是 最 小 的 操

作 系 统 内 核 软 件, 自 问 世 以 来
μc/os 的稳定性和可靠性得到广
泛的认可,先已经通过美国 FAA
认证广泛应用到各个硬件平台上。
下面在 μc/os 平台下介绍数据接
收的程序实现,至于串口初始化
等其他程序实现就不再赘术。

数据接收
任务名 TaskUart0Revice,从

UART0 接 收 数 据, 当 接 收 完 一
帧 数 据 后 通 过 消 息 邮 箱 传 送 到
TaskStart 任务。具体实现如下。

void    TaskUart0Revice(void 

*pdata)

{
    uint8 *cp;
    uint8 Buf[4], temp, i;
      p d a t a   =   p d a t a ;                    

                           /* 避免编译警告 
*/

    for (;;)
    {
err:
        cp = Buf;
                while  (UART0Getch() 

!= 0xff);                              /* 接
收数据头 */    

        for (i = 0; i < 4; i++)
        {
                        t e m p   = 

UART0Getch();

            if (temp == 0xff)
            {
                goto err;
            }
            *cp++ = temp;
        }
        OSMboxPost(Uart0Rev

iceMbox, (void *)Buf);

    }
}

五、结束语

用 ARM 开 发 的 基 于 μc/os

嵌 入 式 系 统 和 PLC 的 实 时 串 行
通信软件运行稳定,充分利用了
PLC 本身的资源,实现了上位机
与 PLC 的实时通信,数据传输达
到预期的目标。可见使用嵌入式
系统对电梯的监控是完全可行的。

参考文献

1、 松 下 FPO 系 列 可 编 程 控

制器编程手册 .

2、 可 编 程 序 控 制 器 原 理 ・

应用 ・ 实验 .  北京:机械工业出
版社,1997

3、甄小琴,张世光 .PLC 机

的串行通讯程序设计 . 中国仪器
仪表,2001(5)

:45-48.