第1期 电光系统 No.1 2010年o3月 Electronic and Electro-optical Systems Mal".2O10 基于PIC16F877A和TL16C754的异步通信串13扩展及实现 周军华,韩树科,宋建云,王 艺,谢安 中国电子科技集团公司第二十七研究所,郑州450047 摘要:文章介绍了基于PIC16F877A单片机和TL16C754异步通信芯片实现异步通信串口扩展的整体方 案。该系统主要由PIC16F877A单片机、TL16C754及SN54LS245驱动芯片构成,通过开展相应的试验,证 明了该处理方案的有效性,并在某工程项目中应用。 关键词:PIC16F877A;TL16C754;异步通信;串口扩展 中图分类号:TN915.9 文献标识码:A Expanding and Realization of Asynchronous Communication SeriaI POrt Based on PIC16F877A and TL16C754 ZHOU Jun-hua。HAN Shu-ke,S0NG Jian.yun,WANG Yi,XIE An f e 27th Research Institute of China Efectronics Technology Group Corporation。Zbengzhou ,D047。China) Abstract:The whole scheme of system based on PIC16F877A and TL16C754 is proposed,with which the ex— panded asynchronous communication serial port is implemented.The system is composed of a PIC16F877A,a TL16C754 and has been a SN54 L:S245 module.This scheme has been proved experimentally effective and has been applied in an engineering project. Key words:PIC16F877A;TL16C754;Asynchronous Communication;Serial-port Expanded 时器(Oscillator Start—up Timer,OSC),除了一个 1引言 看门狗定时器之外,另外还有3个定时器及2个 CCP模块,输出具有较强的驱动能力,程序存储器 在工程实践中,主机与外设之间有许多采用 最多可到8 K的字(14位宽),数据存储器(RAM) 串口进行通信的实例。当与主机连接的外设较多 最多到368的字节(8位)以及256字节的数据存 时,就需要进行串口扩展,对主机与外设之间的数 储器,除了部分程序分支(Branch)的指令需要两 据通讯进行管理,根据通信协议分发相关信息给 个指令周期外,所有的指令执行时间都只需要一 主机或外设。本文介绍的内容正是基于这样的应 个指令周期,支持中断处理(14个中断源)。 用背景进行的,它同时减轻了主机和外设对数据 2.2 TL16C754介绍 处理的负担,实现了串口服务的功能。 TL16C754由四个带有逻辑控制的异步通信 单元组成,每个通道相对独立,可单独控制;具有 2硬件简介 可编程的波特率发生器,在5 V工作电压下,最高 可达3 Mbps. 2.1 PIC16F877A介绍 可选择DMA模式或FIFO模式,在FIFO模式 PIC16F877A是Microchip公司生产的使用高 下,每个ACE发送器和接收器均带有64字节的 性能RISC CPU核心的微处理器,其工作频率范围 FIFO缓冲,通过CPU设置合适的触发层级,可减 为DC一20 MHz,内置POR(Power—on Reset)和 少CPU的中断次数,具有可编程的串行数据格式: BOR(Brown—out Reset)两种复位功能和上电延时 数据长度可设为5,6,7或8 bit,停止位长度可为 定时器(Power—up Timer,PWRT),振荡器起振定 l,1.5或2 bit,校验模式可以是奇校验、偶校验,也 作者简介:周军华(1981一),男,助理工程师,毕业于西安电子科技大学技术物理学院,研究方向:系统工程。 总第131期 周军华,等:基于PIC16F877A和TL16C754的异步通信串口扩展及实现43 可以无校验。 图1 TL16C754功能模块图 2.2.1主要引脚功能及工作原理 A0一A2:连接地址线的低3位,与读、写模式, LCR的DLAB位及其它相关寄存器状态位一起构 成TL16C754的片内寄存器的选择信号,其可选择 寄存器如表1所示。 表1 TL16C754寄存器地址列表 D0一D7:数据总线,用于TL16C754与CPU之 间的数据,控制和状态信息提供双向路径,D0为 最低有效位; CSA—CSD:片选端,每个片选端(CSX)是能 相应通道的读写操作; TXA—TXD:分别为4个通道的串行数据输 出端; RXA—RXD:分别为4个通道的串行数据输 入端; INTA—INTD:4个串行口中断输出,将中断信 号送往CPU. TL16C754与CPU之间通信是通过D0一D7 这8个数据端口并行传输,TL16C754与外设之间 通信是通过TXA—TXD与RXA—RXD这8个数 据端口分别串行输出与串行输入。 3总体设计 PIC16F877A,TL16C754,SN54LS245,主机及 外设的组成如图2所示。本设计方案可实现四路 串口扩展,支持高达2.5 Mbps的波特率,可实现高 速通信。 HC16/7877A gN54LS245 TL16(7754 , 图2系统主机及串口扩展框图 RE0一RE2连接A2一A0地址端,结合对 TL16C754的读、写及LCR的BI1_7用于选择 TL16C754内置的各个寄存器,根据需要对其进行 配置。RA0一RA2连接CSA—CSD,CPU根据约定 的协议或者中断信号源选择相应的通道,发送或 者接收相应通道的数据,并对这些数据进行处理。 RB4一RB7连接INTA—INTD,TL16C754产生 FIFO接收数据有效中断、超时中断、接收器线路状 态中断、发送器保持寄存器空中断等中断时,将中 断信号发给CPU,CPU收到中断信号后,进入相应 电光系统 第1期 的中断处理程序。RC0一RC2分别连接lOW,IOR 及RESET,由CPU控制所选TL16C754通道的写 操作、读操作及内部寄存器复位操作。在作为一 般的l/O端口时,PIC16F877A的PORTD口为施 密特触发缓冲器,因此,进行数据传输时在RD0一 RD7与D7一Do端口之间加一双向信号驱动芯片 SN54LS245,以保证数据传输的正确性、完整性,对 于SN54LS245来说,OE为使能端,当DIR为高时, 数据由A流向B;为低时,数据由B流向A.本方 案中使扩展串口的A通道与主机通信,B,c,D通 道分别与外设通信,各个通道的参数可单独设置。 4软件设计 为保证通信的实时性,在程序处理中我们采 用了中断方式。因此,软件设计主要包括主程序 和中断服务程序两部分,在主程序中主要完成了 一图3程序流程 些参数的初始化设置,包括对单片机的初始设 置,打开或关闭单片机中断,对TL16C754内部寄 5结束语 本方案保证了主机与外设之间数据通信的实 时性、正确性,能保证在高波特率的条件下实现串 口的扩展,对数据进行有效管理,大大降低了主机 与外设的数据处理负担。其已应用于某工程项目 的通信处理中,运行中效果良好。 参考文献 [1]何信龙,李雪银,编著.把PIC16F87X快速上手[M].北 京:清华大学出版社,2002. [2].TI公司.TL16C754 Data Sheet. 存器设置参数,这些参数中包含通信波特率,数据 位数,停止位数,奇偶校验,中断方式,FIFO触发层 级,中段使能等;中断服务子程序中,主要实现判 断中断信号源,对收到的数据进行处理,并将处理 过的数据发往约定的通道,同时对外设进行一定 的控制。 在应用于某工程时,主机与3个外设通信设 计参数为波特率115.2 kbps,数据位长度为8 bit, 1 bit停止位,奇校验。在FIFO中断模式下,允许 接收数据有效中断和超时中断,允许接收器线路 状态中断。其软件流程如图3所示。 (上接第28页) 电子邮电出版社。1995. 高速红外图像采集系统并成功地和红外摄像机对 接。从实际采集数据情况看来,完全满足了最初 对设计的要求,能够实时、准确地存储图像,在最 快帧率(50帧/s)下也符合要求,并且控制方便,能 在系统上对图像进行初步处理,如回放、亮度对比 度处理、去坏点等。 参考文献 [I]沈兰荪.高速数据采集系统的原理与应用[M].北京: [2]刘乐善。微型计算机接口技术及应用[M].武汉:华中 理工大学出版社,2000。 [3][美]Tom Shanley,Don Anderson.PCI系统结构[M]. 刘晖,等译北京:电子工业出版社,2000.7. 『4]AMCC公司¥5933 Data Book. [5]ALTERA公司产品手册. [6]武安河.Wiindows设备驱动程序(VxD与WDM)开发 实务[M].北京;电子工业出版社,2001.