PC机和激光没距雷达双路高速数据通信接口卡

2006-05-07 15:49:53来源: 电子技术应用

2 系统设计中的几项关键技术

2.1 RS-422通讯接口及收发控制

    RS-422A通信接口标准使用单一+5V电源供电,是一个平衡型接口。它采用差动发送、差动接收的工作方式,发送和接收电路使用各自独立的平衡驱动器、接收器对,因而排除了各接收器地电势差带来的影响。使用RS-422A接口标准最大通信速率可达10Mb/s(对应通信距离12m),最大通信距离可达1200m(对应通信速率为10kb/s。

    对于500kb/s高速的串行通信,靠80C196KD自带的串行通信接口已无法承担,必须采用专用的异步串行通信收发器(UART)来实现。下面先简要介绍一下系统中采用的TI公司的UART产品16C550C。

    TI公司生产的异步收发器(UART)TL16C550C是TL16C450的升级,它的主要功能与TL16C450完全相同,但是它片内多了一块16个字节的先进先出(FIFO)存储部件,用于缓解高速通信场合下CPU的繁忙程度。当片内的FIFO被激活时,最多允许在FIFO中存储16个字节作为缓冲。为提高CPU读数据的速度,该片支持DMA操作。

    16C550C在外设或MODEM接收到串行数据时能自动完成串并转换并存储,在收到CPU发来的数据时能自动完成并串转换并发送。在UART工作过程中CPU能随时查询到UART此时的工作状态。它最高可支持1Mbps的串行通讯速率[2]。

    RS-422接口通讯部分原理图见图2。

    差动发送器采用SN75174,差动接收器则采用SN75175。由于系统要求的通信速度很高,因此一般的光电隔离器件如TLP521系列不能满足要求,而应采用高速光耦。美国General Instrument公司生产的高速光电耦合器6N137,由磷砷化镓发光二极管和单片光敏集成检测电路组成。通过光敏二极管接收信号并经内部高增益放大器把信号放大后,由集电极开路门作为输出。该器件隔离电压高,速度快,共模抑制性强,完全能胜任高速通讯工作。

    另外,为提高系统的抗干扰性,除了采取高速光电隔离以外,对每一路高速通讯口均采用了一个电源隔离模块,这样即使在外部通讯受到强干扰甚至短路的情况下,也能保证计算机的绝对安全。

    激光测距雷达的数据由TL16C550C接收后,向80C196KD发出数据有效信号,由80C196KD来取走其缓冲区内的数据。

2.2 接口卡和PC机通信缓冲区的共享

    接口卡和PC机共享RAM的实现方式一般有以下三种方案:

    · 采用双端口RAM,该方式速度高,应用方便,适用于共享数据区两侧需要频繁高速地交换数据的场合,但成本稍高;

    ·采用单口RAM,并附加以一定的控制逻辑以保证某一时刻RAM的总线只和一个宿主相连接,以避免发生总线冲突。这种方式适用于交换数据量较小,次数也不频繁的场合,尤其是不能有RAM两侧的宿主同时要占用RAM的情况;

    ·采用两片单口RAM做轮换邮箱,并附加以一定的控制逻辑。当邮箱一侧的宿主向第一片RAM写入数据时,邮箱另一侧的宿主可从第二片RAM中读数据;当邮箱一侧的宿主需要向第二片RAM写入数据时,邮箱另一侧的宿主可又从第一片RAM中读数据。如此反复完成数据的交换过程,中间总线的切换由硬件控制逻辑来保证。这种方式克服了方案2不能有RAM两侧的宿主同时占用RAM的缺点,能实时地交换数据,但控制逻辑较为复杂。

    在本接口卡中,由于RAM一方面要及时存放两路激光雷达的数据,一方面又要随时准备PC机来获取数据,完全有可能发生PC机在读RAM中某一路激光雷达数据的同时板卡必须接收另一路激光雷达的数据的情况,故而方案2显然不行。而方案3的控制逻辑相对复杂而且芯片多,占用面积大。所以第一方案是最佳选择。我们采用IDT公司的IDT7134双端口RAM作为系统的共享数据存储区,容量为4KB[3]。

    板卡与ISA总线的接口模块采用ALTERA公司的现场可编程门阵列(FPGA)芯片EFP6016-144来实现。内部逻辑的构造采用ALTERA公司的硬件描述语言ADHL程序来实现。ADHL是一种模块化的高级语言,它特别适合于描述复杂的组合逻辑、组运算和状态机、真值表和参数化的逻辑[4]。

    参考PC机中IO端口使用情况可知,PC机中一般均为用户板卡的使用留有端口,如2E0H~2EFH段和300H~30FH这一段均是用户扩展板卡可使用的IO端口地址。故本通信卡中状态寄存器使用2E2H,控制寄存器使用2E3H,2E0H作为共享RAM中的数据读写端口,2E1H作为数据读写时的地址预置端口。各端口指向的寄存器各位的意义如下:

    ·状态读取端口 (地址:2E2H)

    D0:L1-DATA,雷达1的数据有效;

    D1:L2-DATA,雷达2的数据有效;

    D2:196-BUSY,板卡CPU正忙;

    D3:恒为1

    D4:恒为1

    D5:L1-W-ACK,C196已收到PC机写入的雷达1的数据;

    D6:L2-W-ACK,C196已收到PC机写入的雷达2的数据;

    D7:恒为1。

    ·控制端口 (地址:2E3H)

    D0:L1-ACK,PC机对L1-DATA的应答信号;

    D1:L2-ACK,PC机对L2-DATA的应答信号;

    D2:L1-WR,PC机已对板卡写入雷达1的控制信号;

    D3:L2-WR,PC机已对板卡写入雷达2的控制信号;

    D4:WAKE-OUT,PC机给板卡CPU的唤醒信号;

    D5:恒为0;

    D6:PC-RESET,PC机对板卡的复位信号;

    D7:恒为0。

    ·地址预置端口 (地址:2E1H,)

    D7~D4:恒为0;

    D3~D0:为板卡RAM的12位地址总线中的高4位,板卡RAM的低八位地址初始值为00H。

    ·数据读写端口(地址:2E0H)

    PC机从该端口读雷达数据或写雷达命令。

2.3 接口卡资源分配及PC机命令

    板卡上4K的数据共享RAM的存储区分配如下:

    0000H~09FFH:共2.5KB容量,为串口I的接收数据存储区;

    0A00H~0EFFH:共1.2KB容量,为串口II的接收数据存储区;

    0F00H~0F80H:共128B容量,为串口I的发送命令存储区;

    0F81H~0FFFH:共128B容量,为串口II的发送命令存储区。

    板卡能接收并处理的命令有三种:

命令存放地址 意       义
命令区基地址
命令区基地址+04H
命令区基地址+08H
外设初始化
接收数据加窗处理
接收数据平滑处理

    外设初始化命令格式如下:

命令值(8bit) 外设类型(8bit)

01H

01H:雷达类型Ⅰ
02H:雷达类型Ⅱ

    接收数据加窗处理命令如下:

命令值(8bit) 起始角度 结束角度
01H 8bit 8bit

    接收数据平滑处理命令如下:

命令值(8bit) 前后平滑帧数
01H 8bit

    所有命令都是01H有效,00H则无效。

2.4 板卡与雷达的握手通信协议

    板卡与雷达的握手通信协议共分以下五个步骤:

    ·设定板卡自身的通讯波特率为9600;

    ·向雷达发送启动安装模式的命令,并等待雷达应答数据返回。

    ·向雷达发送命令,设置雷达的通讯波特率为500Kbps;

    ·设置板卡自身的通讯速率为500Kbps;

    ·向雷达发送命令,设置其为“连续发送测试数据模式”,并等待雷达应答数据返回。

    此后雷达便开始以一定的时间周期将测试数据以500Kbps的通讯速率发送至板卡。

    协议中具体的命令字节格式等跟雷达型号有关,篇幅所限,在此不再说明。

3 接口卡工作过程

    PC机上电后,板卡自动复位并通过“IDLPD #2”指令进入掉电工作方式。当激光雷达将要被初始化时,PC机通过将控制端口寄存器的D4位置1来“唤醒”板卡工作。然后向对应串口命令区写入雷达初始化命令,板卡将根据命令中雷达类型执行相应的初始化操作。初始化应答过程如上所述。

    初始化成功后,板卡便开始接收数据,接收完后依据校验字对数据进行CRC校验。正确无误则去掉应答数据的头和尾,只剩下总数据字节数(16bit)和数据,并根据PC机的要求对雷达扫描数据进行数据平滑或数据加窗处理。处理后的数据存放在双口RAM的相应存储区中,然后通过将对应的L-DATA信号置高告知PC机前来取数据。

    PC机通过查询端口检测到雷达数据有效后,即以对应的L-ACK信号作为应答。然后板卡和PC机分别撤消各自的信号。PC机可开始读取对应雷达的数据。当PC机想从板卡共享RAM的某一地址开始读写数据时,先向2E1H端口寄存器写入12位共享RAM地址的高4位,低八位使其自动为零。当PC机读写完一个字节的数据时,通过FPGA构造的片内计数器,该EISA接口能自动将地址加一,指向RAM中的下一个字节单元。这样,PC机在读写板卡RS-422接收的数据时,只需在读写之前设定一次地址,然后就可以连续不断地从板卡中读取成块的数据,从而大大提高了端口传送数据的速度。

    同样,当PC机向板卡写入命令时,除向对应串口命令区写入命令外,置位相应的L-WR信号,以告知板卡。板卡即以对应L-WRACK信号作为应答。随后PC机和板卡分别撤消各自的信号。板卡取出命令解释并执行相应的操作。

    综上所述,本文所设计的PC机与激光测距雷达高速串行通信接口卡具有如下特点:

    ·具有双路高达500Kbps的高速RS-422数据通信接口,可靠性好,通信效率极高;

    ·采用FPGA和双端口RAM做ISA总线接口及高速共享数据缓冲区,只占用很少的PC机端口资源就实现了板卡和PC机高速的数据通信和共享;

    ·划分了主PC机和板卡的任务范围,拟订了命令代码,能做到主从CPU一定程度地高速并行处理;

    ·上层PC机的接口软件设计简单方便,只需在WINDOWS下开一个线程监视板卡的状态端口即可,避免了编写设备驱动程序的烦琐工作。

    该接口卡已成功地应用在智能自主式移动机器人中主处理机和激光测距雷达的通信方面,取得了满意的效果。

编辑: 引用地址:http://www.eeworld.com.cn/designarticles/others/200605/2386.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved