串行通信控制器85C30及其应用

时间:2022-12-25 07:38:37 其他范文 收藏本文 下载本文

串行通信控制器85C30及其应用(集锦6篇)由网友“printemps”投稿提供,下面是小编帮大家整理后的串行通信控制器85C30及其应用,希望对大家有所帮助。

串行通信控制器85C30及其应用

篇1:串行通信控制器85C30及其应用

串行通信控制器85C30及其应用

摘要:85C30是美国AMD公司生产的高性能双通道串并转换通信控制器,它支持多种通信协议,可用于各种多串口通信应用领域,文中介绍了85C30的特性、结构和功能,给出了85C30在异步通信中的应用方法。

关键词:串行通信控制器85C30异步通信

1概述

85C30是AMD公司生产的双通道、全双工、支持多种通信协议的通信控制芯片,该芯片自身带有串并、并串转换功能,可广泛应用于微控制器组成的多串口串行通信应用系统中。其内部集成了波特率生成器、数字锁相环和晶体振荡器等可编程器件,因而可大大减少对外围电路的需要,提高了系统的可靠性,更适用于高速通信应用领域。

85C30的主要特性如下:

●具有两个可全双工工作的通信通道;

●可异步、同步串行通讯;

●符合面向字符的同步协议,如IBMBISYNC(二进制同步通信协议);

●符合面向比特的同步协议,如同步数据链路控制协议HDLC和高级数据链路控制协议SDLC;

●最高数据传输率为4Mbit/s(同步模式);

●内含波特率生成器、锁相环和晶体振荡器;

●具有奇偶校验、字符插入或删除、CRC(循环冗余码)生成和校验等多种自动纠错功能。

2内部结构和引脚功能

2.1内部结构

图1所示为85C30的内部结构框图。85C30可用于各种微控制器系统中,并具有查询、中断和DMA工作方式。

2.2引脚功能

85C30具有40-PDIP和44-PLCC两种封装形式?图2为其44-PLCC封装的引脚排列图。85C30的主要引脚功能如下:

D0~D7:数据线引脚;

RD、WR:读、写控制端?低电平有效;另外,若两个引脚同时为低,可使芯片复位;

A/B:通道A/通道B选择;

D/C:数据/命令选择;

CE:片选信号;

+5V,GND:电源接入端;

PCLK:系统时钟输入端;

INT:中断请求;

INTACK:中断响应;

IEI,IEO:分别为中断使能输入、输出端口;

RxDA,TxDA:分别为通道A的串行输入、输出;

RxDB,TxDB:分别为通道B的串行输入、输出;

TRxCA,RtxCA:分别为通道A的时钟控制端;

TRxCB,RtxCB:通道B的时钟控制端;

SYNCA、W/REQA、DRT/REQA、RTSA、CTSA、DC-DA:通道A的同步通讯控制端;

SYNCB、W/REQB、DRT/REQB、RTSB、CTSB、DCDB:通道B的同步通讯控制端。

385C30中的寄存器

在数据通信过程中,系统是否能准确地按照规定的协议完成通信任务,主要取决于初始化及系统运行期间程序对85C30的.读写寄存器的合理运用。使用时,对片上每个通道的设置都应包括16个写寄存器和11个读寄存器。在这16个写寄存器中,有10个写寄存器用于通用控制,2个用于同步字符的生成控制,2个用于片上波特率设置。此外,还有两个双通道共享的写寄存器,一个用于中断向量控制,另一个用于芯片总中断开关控制。在11个读寄存器中,有9个读寄存器用于存储通信状态和数据。

4应用电路

85C30的接口电路如图3所示,利用该电路可实现双通道的全双工异步通信,波特率为115.2kbps。电路中采用无响应中断模式,即在85C30有中断申请且没有进行中断服务时,将85C30的INT引脚拉低有效,以向MCU申请中断,而MCU不用向85C30输出INTACK中断响应信号,从而简化了电路。判定接收发送不同中断源的中断优先级可由程序实现。该电路主要由电平转换电路、译码电路和MCU电路组成。

电平转换电路的主要作用是提高板间通信的可靠性,由于板间通信采用的是485电平标准,因此,可利用MAX490全双工通信转换芯片将TTL电平信号转换为485电平标准的差分信号。而对于译码电路,由于85C30中有两个通道,每个通道又有各自的命令口和数据口,而且每个口都需要有相应的硬件地址。因此,该译码电路由MCU的高8位地址线、低2位地址线及GAL和地址锁存器573组成。

MCU电路主要由80C196KC组成,与MCU的连线有数据线D0~D7、RD、WR控制线和INT线,其中INT连至MCU的外部中断EXINT引脚,这样,一旦85C30有中断申请,MCU可将其作为一个外部中断申请来自动生成相应的中断向量,从而执行相应的中断服务程序。中断服务程序入口地址为0X203E。另外,PCLK外接11.05926M的晶振可用于为系统提供时钟。

图4接收、发送中断服务程序

5应用程序

5.1初始化

图4给出了85C30一个通道的初始化流程图,由于芯片的两个通道所采用的通信协议完全相同,因此初始化过程也相同。每个通道的初始化可分为三个步骤:第一是进行各协议设置(如异步、校验、波特率、字符长度等);第二是对各种功能的使能(包括波特率生成器,接收中断,发送中断);第三为开中断。

5.2接收发送中断服务程序

MCU在收到85C30的INT有效信号后将进入外部中断服务程序。图4给出了该中断服务的流程图。用该程序的一定顺序查询芯片的RR2即可实现芯片间和芯片内的中断优先处理任务,对85C30各中断事件的优先级设定如表1所列。

表185C30各中断事件的优先级

通道A接收中断

通道A发送中断RR2=6

RR2=4HIGH

LOW通道B接收中断

通道B发送中断RR2=2

RR2=0

85C30中的读寄存器RR2能实时反映出芯片内申请中断的各个中断源优先级最高的中断源,当芯片没有中断申请时,RR2的默认值为3。程序执行时,系统将首先判断U4是否有中断申请,若有,则处理相应任务。另外,在MCU处理了一个85C30的中断源后,再次读取RR2,则可再次得知当前申请中断的优先级最高的中断源。这样,就可以通过一次硬件中断申请来完成多个中断源的任务,从而大大节省了频繁进出中断的现象,从而节约了中断处理时间,提高了系统的可靠性和灵活性。

6结束语

85C30具有两个通道,可支持多种通信协议,并可方便地扩展系统串口,提高系统通信的灵活性和可靠性。当系统中各子通道通信速度不一样时,仅需修改各自通道中的波特率寄存器的设置即可。实验证明:在异步模式下,该系统可实现双通道115.2kbps的通信速度,且其错误率为0%。

篇2:串行通信

串行通信这里所说的通信是指计算机与计算机之间或计算机与外部设备之间的数据通信,基本的通信方式有两种:并行通信和串行通信。并行通信是多位数据同时传送,传送速度快,但需要较多的传输线,通信成本高,只适用于近距离的传送。串行通信是数据逐位顺序传送,从单纯传送数据的角度来说只需2~3根线,因而可以大大节省传输线。距离越长,这个优点越突出。显然串行通信的速度比并行通信慢,但是成本是系统构成的一个重要指标,因此长距离的数据传输都采用串行通信方式,

本章首先简要介绍数据通信的有关基础知识,接着要重点讨论属于外部总线的RS-232C串行通信总线以及PC系列机的串行通信,然后从应用角度介绍RS-422总线和RS-485总线,最后简要介绍一下通信协议。对于曾在PC/XT机中以单独芯片出现,并作为串行通信接口电路的核心在高档机中的逻辑或类似逻辑被集成到SuperI/0芯片中的Intel8250,这里仅从编程角度出发,介绍它的内部可编程寄存器以及初始化步骤。对于PC系列机串行通信的编程,这里考虑了汇编语言、DOS平台上的Turbo_c以及windows平台上的VisualC++和VisualBasic,给出了部分程序示例或程序片段

篇3:TMS320LF2407 DSP控制器的串行通信设计

TMS320LF2407 DSP控制器的串行通信设计

一 引言

TI公司的TMS320LF2407型DSP微控制器内嵌的异步串行口(SCI)支持CPU与其它使用标准格式的异步外设之间的数字通讯,通过RS-232接口可以方便地进行DSP之间或与PC机之间的异步通信。而串行外设接口(SPI)是一个高速同步串行输入/输出(I/O)端口,常用于DSP控制器和外部器件或其它控制器间的通讯。本设计正是通过TMS320LF2407所带有的SCI模块进行两台DSP的数据传输通信。同时还利用了DSP2407的SPI模块和I/O口作了显示以及键盘扩展电路,以便能实时监控数据的收发。此实例电路结构简单易懂,非常适合刚接触DSP的初学者使用,具有很好的参考价值。

二  硬件原理设计

此设计主要包含两大模块:一是DSP之间的串行通讯模块:二是DSP与显示器及键盘的串行显示接口模块。以下分别详细介绍每一模块的硬件原理及软件设计。

2.1  SPI外设显示接口模块:SPI是一个高速同步串行输入/输出端口,它允许一个具有可编程串行外设接口长度(1到16位)的串行位流,以可编程的位传送速率从设备移入或移出。本设计利用SPI口外接4片74LS164作为4位LED显示器的静态显示接口,把LF2407的SPISIMO引脚作为数据输出线,SPICLK引脚作为移位时钟脉冲。74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A,B(第1、2脚)为串行数据输入端,两个引脚按逻辑与运算规律输入信号,用同一个输入信号时可并接。CLK(第8脚)为时钟输入端,可连接到串行口的SPICLK端。

2.2  串行通讯接口(SCI)模块:

SCI模块的接收器和发送器是双缓冲的,每一个都有它单独的使能和中断标志位。两者可以单独工作,或者在全双工方式下同时工作。SCI使用奇偶校验,超时,帧出错监测确保数据的准确传输。SCI 的两个外部引脚SCITXD(数据发送端)和 SCIRXD(数据接收端)在不用来通讯时可作普通的I/O。SCI有一个16位的波特率选择寄存器,在40M的`晶振下,可以设定从76bps~1875Kbps不同的波特率。图2是TMS320LF2407的串行通讯接口电路。该电路采用了符合RS-232标准的驱动芯片MAX232进行串行通讯。MAX232芯片功耗低,集成度高,+5V供电,具有两个接收和发送通道。由于TMS320LF2407采用 +3.3V供电,所以在MAX232 与TMS320LF2407之间必须加电平转换电路。本设计系统采用了一个二极管(1N4007)和三个电阻进行电平转换。整个接口电路简单,可靠性高。

图2   TMS320LF2407的串行通讯接口电路

三  系统软件及通讯协议设计

软件及通讯协议设计主要包括了DSP系统初始化,SPI初始化,SCI初始化,SCI发送接收数据,SPI显示数据五大部分。

3.1  DSP系统初始化

此部分程序设计主要是为了使DSP进入正常的工作状态。其主要的设计步骤如下图示。

3.2  SPI与SCI初始化

TMS320LF2407的SPI和SCI初始化包括以下几大部分:把相对应的I/O口配置成具有SPI,SCI的特殊功能;时钟模式的选定;波特率选择;发送接收数据长度选择;内部相对应的时钟使能。所有设置都是通过相对应的SPI,SCI控制寄存器实现的。具体步骤如下图示。

3.3  SCI发送接收数据及SPI显示:  通讯协议采用异步串行通讯方式,波特率为9600bps,数据包括8位数据位、无、奇偶校验位、1个低电平起始位和1个高电平停止位。采用地址位多处理器模式。通讯软件设计采用查询方式,即查询到相应标志位满足条件时,就发送一个数据并送往SPI模块显示。具体设计步骤如图5所示。

四  结束语

本应用实例已通过调试,若要实现DSP与PC机之间的通信,只需要在PC机上使用MSCOMM控件,使端口传输和接收数据,方便地为应用程序提供串行通信功能。通过实际运行表明,利用TMS320LF2407的SPI,SCI模块实现DSP之间或与PC机的通信,与传统的C51单片机相比,其电路简单,设置灵活,运行速度更快,性能可靠稳定。

篇4:串行接口键盘控制器SK5278及其在单片机系统中的应用

串行接口键盘控制器SK5278及其在单片机系统中的应用

摘要:SK5278是一种可管理16个按键的键盘控制器,该器件内部具有去抖动处理电路,可直接输出按键的键值编码,并采用串行方式与单片机或微处理器进行接口,使用该器件可简化单片机系统软硬件的键盘接口。文中给出了该器件的特点、管脚说明和使用方法,并以AT89C2051单片机为例给出了相应的接口电路及相应程序。

关键词:键盘控制 串行接口 单片机 SK5278

对于以单片机为核心构成的智能仪器、仪表、工控设备及家用电器而言,构成人机交互的键盘接口电路是必不可少的,而相应的键盘管理软硬件设计却比较麻烦。简单的矩阵键盘存在着占用CPU软硬件资源多、响应速度慢、监控软件编制复杂等问题,专用的键盘接口器件如INTE8279、HD7219又往往具有LED数码管显示电路,如果仅使用其键盘管理功能,则存在硬件资源浪费,接口电路复杂,造价较高等问题,SK5278即是为解决上述键盘管理问题而推出的一款键盘控制芯片。

1 特点及引脚功能

SK5278是福州贝能科技有限公司推出的采用PIC内核的键盘控制器。该芯片采用4线串行接口,可与任何种类的单片机接口;它具有按键有效指示输出,可用中断方式管理键盘;其行线X0~X3与列线Y0~Y3可构成4×4键盘矩阵;SK5278的16键键盘控制器内含去抖动处理电路,因而可直接输出键值;此外,该器件的工作电源电压范围宽达4~6V;SK5278采用18脚双列直插DIP封装形式。其管脚排列如图1所示,管脚说明如表1所列。

表1 SK5278管脚说明

管脚号管脚名称管脚类型

功    能

1DIOO数据输出端,读取键盘数据时,此脚在CLK上升沿输出数据2KEYO按键有效输出端,平时为低电平,当检测到有效按键时,此引脚变为高电平。读取键盘后,此引脚重新变为低电平3,14VDD 正电源4RST 复位端5VSS 电源地6~9X0~X3I矩阵键盘行线输入端10~13Y0~Y3O矩阵键盘列线输出端15OSCOO振荡输出脚,输出频率为RC振荡频率四分之一16RC 外接振荡器连接端,R=3.3kΩ,C=20pF时,振荡频率为4MHz17CSI片选端,该脚为低时,可芯片读取键盘数据18CLKI时钟输入端,读取键盘数据时,此脚电平的上升沿表示数据有效

2 工作原理

SK5278可用行线X0~X3和列线Y0~Y3构成4×4矩阵键盘。同时在芯片内部可自动完成扫描、译码、去抖动处理等任务。当SK5278检测到有效的按键时,按键有效指示“KEY”引脚将从低电平变为高电平,并一直保持到按键代码被读取为止。在“KEY”为高电平期间,如果SK5278接收到“读键盘数据”命令,(即“CS”管脚变低),则输出当前按键的键盘代码,SK5278键盘代码的范围为00H-0FH。如果在接收到“读键盘数据”时没有按键按下,SK5278将输出FFH。在一次读键盘过程完成后,按键有效指示“KEY”将变为低电平。利用按键有效指示“KEY”与单片机的外部中断端相连,可完成具有中断的键盘监控功能,从而提高CPU的工作效率,(本网网收集整理)减少按键响应时间。

SK5278工作时需要外接RC振荡电路以供系统工作,RC元件的典型值为R=3.3kΩ,C=20pF,此时的.振荡频率约为4MHz,由于此振荡频率较高,故在印制电路板布线时,所有元件尤其是振荡电路的元件应尽量靠近芯片,并尽量使电路连线最短。

SK5278的RESET复位端在一般应用情况下,可以直接与正电源连接,在需要较高可靠性的情况下,可以连接外部RC复位电路,在上电或接收到RESET端的复位信号后,SK5278大约需要经过25ms的复位时间才会进入到正常工作状态。程序中应尽可能地减少CPU对SK5278的访问次数,以提高程序的效率。

值得注意的是,如果有2个键同时被按下,则SK5278只能给出其中一个按键的代码,因此SK5278不适合应用于需要2个或2个以上按键同时被按下的应用场合。如确实需要双键组合使用或组合增加键盘数量,可在单片机的某I/O脚接入一键与SK5278共同组双键键盘监控电路。

3 串行接口及时序

SK5278采用串行方式与单片机或微处理器接口,串行数据从“DIO”引脚输出,并由“CLK”端发出同步时钟脉冲。当SK5278检测到有键按下时,按键有效指示“KEY”变高,单片机检测到“KEY”信号变高后,便将片选端“CS”拉低,从而使得SK5278将取得的键盘数据在“CLK”引脚的上升沿从“DIO”脚依次送出。在单片机发出8个时钟脉冲后,即可从“DIO”端读取8位键值编码,该编码值的D7为最高位,D0为最低位,然后单片机再使片选“CS”变高,并使“KEY”端重新输出低电平,至此,读键值过程结束。SK5278的串行接口时序如图2所示。图中,T1表示从“CS”下降沿至第一个CLK上升沿的延时,典型值为15μs;T2为CLK脉冲宽度,典型值为10μs;T3为CLK脉冲时间间隔,典型值为10μs。

4 应用电路

利用SK5278串行接口占用单片机口线少及无键按下时无须CPU干预的特点,可以很容易地构成单片机的键盘接口电路,图3所示是AT89C2051单片机与SK5278构成的键盘及接口电路。图中,AT89C2051的P1.2、P1.3、P1.4口线分别与SK5278的“CS”、“CLK”、“DIO”端相连。为了提高按键的响应速度并减少单片机的干预。本方案将SK5278的按键有效指示端“KEY”与AT89C2051的外中断端INT0相连,由于INT0为低电平中断,故而加入了一级非门以使“KEY”反相后与其相连。与图3电路对应的键盘处理程序如下:

;位定义

COUNT DATA 70H

RXBUF DATA 20H

;I/O定义

DIO BIT P1.4

CS BIT P1.2

CLK BIT P1.3

;主程序

MAIN:MOV SP,#50H

MOV P1,#0FFH ;将P1口置为输入

SETB IT0 ;INT0为边沿触发

SETB PX0 ;INT0为高优先级中断

SETB EX0 ;开INT0中断

SETB EA ;CPU开中断

LCALL DL25ms ;延时25ms等待SK5278复位

;INT0键盘中断程序

INT0:LCALL RECEIVE ;读键值

MOV A,RXBUF ;键值送A

CJNE A,#00H,KEY-1 ;K0键未按下转下键

LJMP KEY0 ;K0键按下,转入相应键值处理子程序

KEY1:CJNE A,#01H,KEY-2;

LJMP KEY1 ;K1键按下,转入相应键值处理子程序

KEY2:…

……

KEY15:CJNE A,#0FH,KEYFH ;K15键未按下,中断返回

LJMP KEY15 ;KEY15键按下,转入相应键值处理程序

KEYFH:RET; 无键按下时中断返回读键盘值程序

RECEIVE:CLR CS ;读键盘数据有效

SETB DIO ;将DIO置为高电平输入状态

ACALL DL 15μs ;T1延时

MOV COUNT,#08H ;共八位数据

LOOP:SETB CLK

ACALL DL 15μs ;T2延时

MOV A,RXBUF

RL A ;数据左移一位

MOV RXBUF,A

MOV C,DIO ;读取一位数据

MOV RXBUF.0,C

CLR CLK

ACALL DL 15μs ;T3延时

DJNZ COUNT,LOOP

SETB DIO ;将DIO重置为高电平输入

ACALL DL 15μs

SETB CS ;读键盘数据无效

RET

5 结束语

应用SK5278键盘控制器可使单片机系统的人机交互键盘接口电路及监控程序变得简单容易,同时减少了对单片机软硬件资源的占用,因而该器件是构成少数单片机键盘接口电路的一种较好的选择方案。

篇5:串行接口键盘控制器SK5278及其在单片机系统中的应用

串行接口键盘控制器SK5278及其在单片机系统中的应用

摘要:SK5278是一种可管理16个按键的键盘控制器,该器件内部具有去抖动处理电路,可直接输出按键的键值编码,并采用串行方式与单片机或微处理器进行接口,使用该器件可简化单片机系统软硬件的键盘接口。文中给出了该器件的特点、管脚说明和使用方法,并以AT89C2051单片机为例给出了相应的接口电路及相应程序。

关键词:键盘控制 串行接口 单片机 SK5278

对于以单片机为核心构成的智能仪器、仪表、工控设备及家用电器而言,构成人机交互的键盘接口电路是必不可少的,而相应的`键盘管理软硬件设计却比较麻烦。简单的矩阵键盘存在着占用CPU软硬件资源多、响应速度慢、监控软件编制复杂等问题,专用的键盘接口器件如INTE8279、HD7219又往往具有LED数码管显示电路,如果仅使用其键盘管理功能,则存在硬件资源浪费,接口电路复杂,造价较高等问题,SK5278即是为解决上述键盘管理问题而推出的一款键盘控制芯片。

1 特点及引脚功能

SK5278是福州贝能科技有限公司推出的采用PIC内核的键盘控制器。该芯片采用4线串行接口,可与任何种类的单片机接口;它具有按键有效指示输出,可用中断方式管理键盘;其行线X0~X3与列线Y0~Y3可构成4×4键盘矩阵;SK5278的16键键盘控制器内含去抖动处理电路,因而可直接输出键值;此外,该器件的工作电源电压范围宽达4~6V;SK5278采用18脚双列直插DIP封装形式。其管脚排列如图1所示,管脚说明如表1所列。

表1 SK5278管脚说明

管脚号管脚名称管脚类型

功    能

1DIOO数据输出端,读取键盘数据时,此脚在CLK上升沿输出数据2KEYO按键有效输出端,平时为低电平,当检测到有效按键时,此引脚变为高电平。读取键盘后,此引脚重新变为低电平3,14VDD 正电源4RST 复位端5VSS 电源地6~9X0~X3I矩阵键盘行线输入端

[1] [2] [3] [4]

篇6:CAN控制器SJA1000及其应用

CAN控制器SJA1000及其应用

摘要:介绍CAN控制器SJA1000的特点、内部结构以及SJA1000的寄存器结构及地址分配;CAN协议通信格式。并以独立CAN控制器SJA1000为例,结合CAN协议说明了一种通用型CAN总线的开发与设计。

关键词:CAN总线 SJA1000 单片机

1 SJA1000简介

SJA1000是PHILIPS公司早期CAN控制器PCA82C200的替代品,功能更强,具有如下特点:

①完全兼容PCA82C200及其工作模式,即BASICCAN模式;

②具有扩展的接收缓冲器,64字节的FIFO结构;

③支持CAN2.0B;

④支持11位和29位识别码;

⑤位速率可达1Mbit/s;

⑥支持peliCAN模式及其扩展功能;

⑦24MHz的时钟频率;

⑧支持与不同微处理器的接口;

⑨可编程的CAN输出驱动配置;

⑩增强了温度范围(-40℃~+125℃)。

图1 SJA1000内部结构

2 SJA1000内部结构

SJA1000的内部结构如图1所示,主要由接口管理逻辑IML、信息缓冲器(含发送缓冲器TXB和接收缓冲器RXFIFO)、位流处理器BSP、接收过滤器ASP、位时序处理逻辑BTL、错误管理逻辑EML、内部振荡器及复位电路等构成。IML接收来自CPU的命令,控制CAN寄存器的寻址并向控制提供中断信息及状态信息。CPU的控制经IML把要发送的数据写入TXB,TXB中的数据由BSP处理后经BTL输出到CAN BUS。BTL始终监视CAN BUS,当检测到有效的信息头“隐性电平-控制电平”的转换时启动接收过程,接收的信息首先要由位流处理器BSP处理,并由ASP过滤,只有当接收的信息的识别码与ASP检验相符时,接收信息才最终被写入RXB或RXFIFO中。RXFIFO最多可以缓存64字节的数据,该数据可被CPU读取。EML负责传递层中调制器的错误管制,它接收BSP的出错报告,促使BSP和IML进行错误统计。

3 SJA1000的寄存器结构及地址分配

表1是工作在BASIC CAN模式下的SJA1000的寄存器结构及地址分配表。CAN控制器工作模式的设定、数据的发送和接收等都是通过这些寄存器来实现的。时钟分频寄存器OCR用于设定SJA1000工作于BASIC CAN还是PeliCAN,还用于CLKOUT引脚输出时钟频率的设定,在上电初始化控制器时必须首先设定;在工作模式下,控制寄存器CR用于控制CAN控制器的行为,可读可写;命令寄存器CMR只读写;状态寄存器SR只能读;而IR、ACR、AMR、BTR0、BTR1、OCR在工作模式下读写无意义。通常,在系统初始化时,先使CR.0=1,SJA1000进入复位模式。在此模式下IR、ACR、AMR、BTR0、BTR1及OCR均可读可写,此时设置相应的初值。当退出复位模式时,SJA1000即按复位时设定的相应情况工作于工作模式,除非再次使芯片复位,否则上次设定的值不变。当需要发送信息时,若发送缓冲器空闲,由CPU控制信息写入TXB,再由CMR控制发送;当接收缓冲器RXFIFO未满且接收信息通过ASP,则接收到的信息被写入RXFIFO。可通过两种方法读取接收到的信息。一种方法是,在中断被使能的情况下,由SJA1000向CPU发中断信号,CPU通过SR及IR可以识别该中断,并读取数据释放接收缓冲器;另一种方法是直接读取SR,查询RXFIFO的状态,当有信息接收时,读取该信号自并释放接收缓冲器。当接收缓冲器中多条信息时,当前的信息被读取后,接收缓冲器有效信号会再次有效,通过中断方式或查询方式可以再次读取信息,查到RXFIFO中的信息被全部读出止。当RXFIFO已满,如还有信息被接收,此接收信息不被保存,且发出相应的缓冲器溢出信号供CPU读取处理。

表1 SJA1000的寄存器结构及地址分配表

寄  存  器地  址寄存器名地 址寄存器名地 址控制寄存器CR0测试寄存器9

RDID020命令寄存器CMR1发TXID010RDID121状态寄存器SR2送TXID111RXDATA122中断寄存器IR3缓TXDATA112・・接收代码寄存器ASR4冲・・・・接收屏蔽寄存器AMR5器・・・・位定时寄存器BTR06T・・RXDATA929位定时寄存器BTR17XTXDATA819时钟分频寄存器OCR31输出控制寄存器OCR8B

4 CAN协议通信格式

CAN协议通信格式中有四种帧格式:数据帧、远程帧、出错帧和超载帧。其中数据帧和远程帧的发送需要在CPU控制下进行,而出错帧和超载帧的发送则是在错误发生或超载发生时自动进行的。因此人们更关心前两个帧的结构。数据帧结构如图2所示。

(本网网收集整理)

一个完整的数据帧格式,除仲裁场、控制场、数据场外都是CAN控制器发送数据时自动加上去的,而仲裁场、控制场、数据场则必须由CPU控制给出。用SJA1000时,写出发送缓冲器的TXID0、TXID1即设定了相应的仲裁场和控制场。TXID0即为仲裁场的高8位,TXID1的高3位为仲裁场的低3位,仲裁场共11位。TXID1的第5位为RTR位,即远程请求位,在数据帧中为“0”;TXID1低四位标示数据场所含字节数的多少,称为DLC。RTR与DLC共同构成控制场。发送的数据组成数据场,最多不超过8个字节。远程帧与数据帧的形式差别在于没有数据场。除此形式上的差别外,在远程帧中RTR位须置“1”,表示请求数据源节点向它的目的'点(即发送远程帧的节点)发送数据。源节点接收到该帧后,把要发送数据用数据帧发给目的节点,完成数据请求。CRC场与ACK场都是在低层次上为提高传输的可靠性而自动进行的。任何帧与帧之间是帧间空间。

5 设计实例

5.1 整体设计思路

这里用SJA1000与AT89C51芯片设计一种具有通用性的工业测试控制,系统的结构图如图3所示。

CAN总线是一种多主总线,理论上任何一个节点都可以作为主节点。在本系统中设置与上位PC机相连的节点1和节点2为上位节点,其它节点为底层节点。在任务比较简单的系统中,也可以只设置一台上位PC机,PC机通过串口与节点上的CPU通信,CPU再与CAN控制器SJA1000通信,实现信息在CAN BUS上的发送与接收。节点1与节点2的结构相同,而底层节点根据应用的不同具有不同的功能。但它们都具有与CAN BUS通信的能力,上传数据和接收数据。

5.2 电路原理图

节点1与节点2的原理图如图4所示。AT89C51通过MAX232与PC机串行通信。设置SJA1000工作于Intel模式,由PC机发送的数据写入SJA1000并通过CAN收发器发送。接收数据是通过中断进行的,CAN BUS的数据经CAN接口芯片82C250接收并写入SJA1000的RXFIFO,然后通过中断提请CPU读取。读取的数据由RS232口上传送给PC机。

在本系统中其它节点不与PC机通信,此时AT89C51除与SJA1000相接的口线外还剩余口线,可以做其它用途。如用于数据的采集,则与A/D转换芯片相接即可;如与控制相关,则与控制口相接即可,这样一来可以灵活地构成各种系统。

5.3 软件设计

该系统的软件设计分为两方面:(1)PC机软件设计,可以用VC++、VB,也可以使用工控软件完成。如只用于监视系统,设计的重点在于PC机与节点之间的通信。(2)节点上CPU的软件设计。不论是节点1、2或是其它底层节点,都要用到CAN通信,因此都要设置CAN控制器。其初始化的流程图如图5所示。

图4 节点1和节点2的电路原理图

具体的例程如下:

MOV DPTR,#CR ;控制寄存器CR的地址送DPTR

MOV A,#01H

MOVX @DPTR,A ;进入复位模式

MOV DPTR,#CDR

MOV A,#00H

MOVX @DPTR,A ;选择BASIC CAN模式、时钟不输出

MOV A,#NODECODE

MOVX @DPTR,A ;节点号NODECODE写入ACR

MOVX DPTR,#AMR

MOV A,#00H

MOV @DPTR,A ;AMR置为0,当且仅当RXID0=ACR时接收数据。

MOV DPTR,#BTR0 ;设定总线时序寄存器BTR0,系统采用12MHz晶振

MOV A,#85H ;分频后总线时钟频率为2MHz

MOVX @DPTR,A ;同步跳转宽度为3tscl

MOV DPTR,#BTR1 ;设定总线时序寄存器BTR1

MOV A,#0B4H ;位同步时间为1个tscl,采样开始位置TSEG1=5tscl

MOVX @DPTR,A ;TSEG2=4tscl,每一位时间10tscl(200kHz),每位采样3次

MOV DPTR,#OCR ;设置输出控制寄存器

MOV A,#1AH ;数据从TX0按正常输出模式同极性输出

MOV @DPTR,A ;TX1不用

MOV DPTR,#CR ;初始化完成,使控制器退出复位模式,进入工作模式工作。

MOV A,#06H

MOV @DPTR,A

该初始化程序使SJA1000工作在BASIC CAN模式下,CAN总线位速率为200kHz。根据总线传输的距离不同速度可以调整。为提高其抗干扰性能,还可以在SJA1000与CAN总线收发器之间加光隔。各节点CPU的其它软件设计应视节点的功能而定,不再多述。

该系统用于城市区域交通中心信息采集及处理,已取得很好效果。由于传输距离较远,设定速率为10kHz,但可靠性较强,系统成本低廉。

CAN总线以其优良的性能使其应用方兴未艾,以SJA1000为控制器构成各种CAN总线系统方便、简单、成本低廉,这也是开发与应用其它CAN总线产品的基础。

DSP与单片机的一种高速通信实现方案

基于高速串行BCD码除法的数字频率计的设计

单总线协议转换器在分布式测控系统中的应用

AT89C控制LMX2332的频率合成器

低功耗MSP430单片机 在3V与5V混合系统中的逻辑接口技术

基于FPGA 的VME自定义总线接口设计论文

9月计算机三级数据库技术精选考试题

ARM7系统中实现CF卡存储的文件系统设计

多网络智能远程遥控系统的设计与实现

单片机的实习报告

串行通信控制器85C30及其应用
《串行通信控制器85C30及其应用.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【串行通信控制器85C30及其应用(集锦6篇)】相关文章:

数据采集系统设计研究论文2023-04-01

计算机原理试题及答案2023-05-22

计算机软件毕业论文2022-09-01

单片机实习报告2022-11-21

9月计算机三级数据库技术考前辅导练习2023-06-16

单片机课程心得体会2023-06-19

基于流水线技术的并行高效FIR滤波器设计2023-06-11

超混沌M-G系统参数辨识及其在通讯中的应用2022-12-06

嵌入式系统的实习报告2023-08-04

基于80C196单片机的某红外预警设备控制系统的设计与实现2022-05-02

点击下载本文文档