您现在的位置:首页 > 技术资料 | ![]() |
SC26C94在测控系统中的应用 1引言 在许多复杂的测控、测试及数据处理系统中,一般需要与大量的被控对象、被测试设备及自动化仪表进行通信,而这些对象、设备及仪表等所提供的接口大多是标准的异步串行接口形式,因此,在以CPU为核心,与多路外围设备进行串行通信的测控、测试系统中,需要对串行接口进行扩充,通过选择功能合适的接口器件完成系统的设计要求。 目前,市场上出现了多种型号的接口芯片, Philips半导体公司生产的四通道通用异步接收/发送器芯片SC26C94是其中之一。它以高集成度、低功耗、高性能、使用灵活等特点被广泛应用于航空、航海、工业控制等领域中。 2 SC26C94器件 SC26C94是采用COMS技术生产的四通道通用异步接收/发送器芯片,共有4个相互独立的通道,且每个通道各有4个数字I/O口和2个16位定时/计数器,它们均可以通过编程设置其工作方式。结构框图如图1所示。
2.1 SC26C94特点 ·8字节发送FIFO; ·数据格式:5~8位数据位,包括奇校验、偶校验和无校验、1、1.5、2位停止位; ·发送和接收可设置不同波特率(23种固定波特率:50~230.4k或外部时钟的1倍或16倍); ·校验错误、帧错误和超限错误检测; ·起始位错误检测; ·通道工作模式可编程设置:即普通全双工、自动回绕、局部循环和远程循环四种模式; ·中断优先级可编程设置并自动识别; ·具有掉电保护模式; ·每个接收器配有“看门狗”电路; 2.2 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种测试设备组成的,其中 3.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软件设计 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,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); stt1=uar1cir&0x1f; if(stt1<=3)break; switch(stt1) { case 0x1c: //中断服务程序// break; default:; } } //恢复现场// } 上述测控系统设计及运行过程表明,SC26C94 具有使用灵活、功能丰富、系统连接方便、编程简单、可靠性高等特点,另外,其合理的性能价格比及畅通的货源渠道,表现出较好的工程实用特性,是一种实用的接口芯片,可广泛应用于自动化仪表、测试、测控及数据处理等系统中。
|