我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1107|回复: 0

SC26C94在测控系统中的应用 - 工业/测控 - 电子工程师俱乐部

[复制链接]

该用户从未签到

1万

主题

1292

回帖

2万

积分

管理员

积分
29577

社区居民最爱沙发原创达人社区明星终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

QQ
发表于 2013-3-30 09:24:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1 引言

在许多复杂的测控、测试及数据处理系统中,一般需要与大量的被控对象、被测试设备及自动化仪表进行通信,而这些对象、设备及仪表等所提供的接口大多是标准的异步串行接口形式,因此,在以CPU为核心,与多路外围设备进行串行通信的测控、测试系统中,需要对串行接口进行扩充,通过选择功能合适的接口器件完成系统的设计要求。

目前,市场上出现了多种型号的接口芯片, Philips半导体公司生产的四通道通用异步接收/发送器芯片SC26C94是其中之一。它以高集成度、低功耗、高性能、使用灵活等特点被广泛应用于航空、航海、工业控制等领域中。

2 SC26C94器件

SC26C94是采用COMS技术生产的四通道通用异步接收/发送器芯片,共有4个相互独立的通道,且每个通道各有4个数字I/O口和2个16位定时/计数器,它们均可以通过编程设置其工作方式。结构框图如图1所示。



2.1 SC26C94特点

SC26C94为用户提供了+5V的供电方式,信号电平与TTL电平兼容,有DIP和PLCC两种封装形式,并具有以下特点:

·8字节发送FIFO;
·8字节接收FIFO;
·数据格式:5~8位数据位,包括奇校验、偶校验和无校验、1、1.5、2位停止位;
·发送和接收可设置不同波特率(23种固定波特率:50~230.4k或外部时钟的1倍或16倍);
·校验错误、帧错误和超限错误检测;
·起始位错误检测;
·通道工作模式可编程设置:即普通全双工、自动回绕、局部循环和远程循环四种模式;
·中断优先级可编程设置并自动识别;
·具有掉电保护模式;
·每个接收器配有“看门狗”电路;

2.2 SC26C94寄存器

SC26C94的工作方式是可编程的,工作方式通过对其一系列寄存器设置来定义,因此使用过程中,需要了解以下寄存器功能:

(1)MR0:工作方式寄存器0
定义发送和接收寄存器的FIFO工作状态及接收器“看门狗”是否启动。

(2)MR1:工作方式寄存器1
该寄存器和MR0组合定义接收FIFO工作状态及数据格式,包括:5~8位数据位、奇校验、偶校验和无校验、1、1.5、2位停止位。

(3)MR2:工作方式寄存器2
定义通道工作模式(包括普通全双工、自动回绕、局部循环和远程循环),停止位(1、1.5、2位)。

(4)CSR:时钟选择寄存器
该寄存器与BRG(波特率产生器)、ACR(辅助控制寄存器,选择波特率设置方式)一起设置接收和发送波特率。

(5)CR:命令寄存器
定义各发送接收端口工作状态及是否允许发送接收。

(6)SR:状态寄存器
反映发送接收缓冲器状态及帧错、奇偶校验错、超限错等状态。

(7)IMR:中断屏蔽寄存器
定义各端口是否允许中断。

(8)ISR:中断状态寄存器
反映当前中断类型。

(9)CIR:当前中断寄存器
反映当前中断的通道号和发送或接收中断类型。

3 SC26C94在测控系统中的应用

某航空测控系统是以80X86为核心,由A/D、 D/A及开关量控制、10种测试设备组成的,其中测试设备中有8路为标准串行通信,分别为发动机转速、气压、高度、速度、遥测调制器、遥控解调器、地磁方向、GPS等量。系统选用两片 SC26C94,扩充8个串行口,实现80X86与8路测试设备的通信。

3.1 硬件设计

(1)振荡电路

SC26C94内部有一个用于构成振荡器的高增益反向放大器,引脚X1与X2分别是此放大器的输入端和输出端。此放大器与外部晶体构成一个振荡器,此例中采用了内部振荡电路。如图2所示,G1(G2)为3.6864MHz晶体;外部电容C2(C5)、 C3(C6)的典型值为24pF;另外,使用外部晶振时,可经过一非门,在非门输出端并联一个1k W的上拉电阻,从公共点引出与引脚X1连接。


(2)复位电路

SC26C94复位时间必须保证RESET引脚上出现 1ms以上稳定的高电平,才可实现可靠的复位。因此无论是简单还是复杂的复位电路,均要保证此条件。图2中使用了简单的复位电路,其中R1 (R2)=1.5kW、C1 (C4)=10mF。

(3)接口电路

如图2所示,通过ISA总线将80X86CPU与SC26C94及其它系统连接起来。其中D1完成总线驱动、隔离和地址译码,RXD1~RXD8与TXD1~ TXD8是SC26C94的接收/发送端,分别与外部的8路测试设备连接,实现CPU与外围设备的通信。

3.2 SC26C94软件设计

SC26C94的软件设计首先是对其进行初始化,然后再分别对各个中断源进行中断服务程序的设计;可选择C或汇编语言进行编程。

3.2.1 初始化编程

初始化编程主要选择芯片工作方式,包括数据格式、波特率、中断允许、接收或发送缓冲器所允许的字节数等。编程方法及顺序如下:

(1)复位接收FIFO(CR)复位发送FIFO (CR);
(2)禁止DACKN;
(3)选择波特率组别(BRGrate);
(4)定义中断向量类型(ICR);
(5)选择波特率组别(ACR);
(6)设置中断屏蔽寄存器(IMR);
(7)指针指向MR0(CR);
(8)设置数据格式及波特率(MR0、MR1、 MR2、CSR);
(9)接收发送允许(CR)。

以C语言为例对通道A初始化程序设计如下:

outportb(uaraddr,uarCRa);
outportb(uarcen1,0x20);
outportb(uarcen1,0x30);
outportb(uaraddr,uarDACKN);
outportb(uarcen1,0);
outportb(uaraddr,uarBRGrate)
outportb(uarcen1,0x00);
outportb(uaraddr,uarICR);
outportb(uarcen1,0x02);
outportb(uaraddr,uarACRab);
outportb(uarcen1,0x80);
outportb(uaraddr,uarIMRab);
outportb(uarcen1,uar1IMRabd);
//UAR1 a yx1(laser)
outportb(uaraddr,uarCRa)
outportb(uarcen1,0xb0);
outportb(uaraddr,uarMRa);

outportb(uarcen1,0x80); outportb(uarcen1,0x53);
outportb(uarcen1,0x07);
outportb(uaraddr,uarCSRa);
outportb(uarcen1,0x88);
outportb(uaraddr,uarCRa);
outportb(uarcen1,0x05);

3.2.2 中断服务程序设计

由于SC26C94四通道中的任何一个都可引起中断,因此在中断服务程序中首先要识别中断源,即识别中断是由哪一个通道引起,是发送中断还是接收中断,是有错误还是无错误等。流程如图3所示。


根据流程图可编程如下:

void interrupt (*oldvect2)();
void interrupt UAR1_interrupt(void)
{
//保护现场//
for(ii2=1;ii2<=5;ii2++)
{
outportb(uaraddr,uarupdateCIR);
outportb(uarcen1,0x00);
outportb(uaraddr,uarCIR);
uar1cir=inportb(uarcen1);
outportb(uaraddr,uarISRab);
uar1israb=inportb(uarcen1);
outportb(uaraddr,uarISRcd);
uar1isrcd=inportb(uarcen1);
outportb(uaraddr,uarGIBCR);
count1=inportb(uarcen1);

if (count1 > 8) count1 = 8; stt1=uar1cir&0x1f;
if(stt1<=3)break;
switch(stt1)
{
case 0x1c:
//中断服务程序//
break;
default:;
}
}
//恢复现场//
}

4 结论
上述测控系统设计及运行过程表明,SC26C94 具有使用灵活、功能丰富、系统连接方便、编程简单、可靠性高等特点,另外,其合理的性能价格比及畅通的货源渠道,表现出较好的工程实用特性,是一种实用的接口芯片,可广泛应用于自动化仪表、测试、测控及数据处理等系统中。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

公告:服务器刚移机,
大家请不要下载东西。
会下载失败


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表