CAN控制器SJA1000及其应用
独立CAN控制器SJA1000的C语言编程

SJA1000中断接收程序
unsigned char rx0; unsigned int rxide; unsigned char rxdata[8]; sbit rxsec=0; void receive interrupt 0 { unsigned char i; unsigned char *p; p=&rxide; rx0=RXEFF0; *p=RXEFF4; P++;
(ARM)设置 清零错误寄存器 中断使能寄存器(IER)设置 进入工作模式
SJA1000初始化程序
void sja1000_init( ) { MOD=0x09; CDR=0xc8;
OCR=0x1a; BTR0=0x??; BTR1=0x??; ACR0=0x??; ACR1=0x??; ACR2=0x??; ACR3=0x??;
ABSACC.H 提供的宏(Macro((unsigned char volatile code *) 0) #define DBYTE ((unsigned char volatile data *) 0) #define PBYTE ((unsigned char volatile pdata *) 0) #define XBYTE ((unsigned char volatile xdata *) 0) #define CWORD ((unsigned int volatile code *) 0) #define DWORD ((unsigned int volatile data *) 0) #define PWORD ((unsigned int volatile pdata *) 0) #define XWORD ((unsigned int volatile xdata *) 0)
sja1000_can控制器basiccan模块概要

AT
中止发送
无动作
1当前信息被发送
CMR.0 TR
发送请求
--
注并要求SJA1000向CAN总线发送该
帧时
将产生一个发送中断
中止传送位是在CPU要求当前传送暂停时使用的
传送一条紧急信息
要查看原始信息是否被成功发送不过
释放
可以通过设置释放接收缓冲器位为1来释放RXFIFO中当前信息的内存空间
BTR0.4 BRP.4波特率预设值4 × ×
总线定时0
BTR0.3 BRP.3波特率预设值3 × ×
BTR0.2 BRP.2波特率预设值2 × ×
BTR0.1 BRP.1波特率预设值1 × ×
BTR0.0 BRP.0波特率预设值0 × ×
BTR1.7 SAM采样× ×
BTR1.6 TSEG2.2时间段2.2 × ×
将清除状态寄存器中的接收缓冲器状态位
如果数据溢出位被置位
在释放接收缓冲器命令的
同时是可以发出清除数据溢出命令的
SJA1000进入睡眠模式
只要破坏这三种条件的其中一种
在复位模式中
2.3.3.3状态寄存器
状态寄存器对微控制器来说是只读存储器
CAN地址2
位
符号
名称
值功能
1
总线关闭
SJA1000加入总线活动
至少出现一个错误计数器满或超过
CPU报警限制
两个错误计数器都在报警限制以下SJA1000在传送信息
SJA1000正在接收信息
最近一次发送请求被成功处理
文档编号
CPU可以向发送缓冲器写信息
CPU不能访问发送缓冲器
1
溢出
SR.1
DOS
独立CAN控制器SJA1000控制研究与应用

耦也 就失 去 了意义 。 电源 的完 全隔 离可 采用小 功 率
收 稿 日期 :0 5 l—l 20 一 O O
电源 隔 离模 块 或 带5 离 输 出 的 开 关 电源 模 块 来 V隔
・
44 ・
维普资讯
独 CN 制 s 1 o 制 与 用/ 竹 王 瑞,无 等 立 A控 器 J 0 控 研究 应 姜 胜,启 陈 畏 A0
SA10 的则更 少 。P ip公 司生产 的SA10 是一 J 00 hl s i J 00 种 广泛 用于汽 车 和其 他领 域 中的独 立C 总线 控制 AN
主要 就 在Pl A 模 式下 如何进 行 软件 编程 . 行 了 ei N C 进
一
些 探讨
1 S A1 0 的典型应用 J 0 0
维普资讯
计 算 飙 应 用
汽 科 第5 06 月 车 技 期2 年9 0
豆A 制s1 耨 c 控 器A0 N J0 0
姜竹胜 , 王启瑞 , 陈无 畏 , 孙启启
( 瑞 汽 车 有 限公 司 电子 电器 部 . 湖 2 10 ) 奇 芜 4 0 9 些 基本 函数 , 能轻 松 自如 的 操作 SA 0 0 便 J 10。 关 键词 : A C N总 线 ;J 10 ; 片 机 ;语 言 ; SA 00 单 C 函数 中 图分 类 号 :P3 23 T 3 . 文 献 标 识码 : A 文 章 编 号 :0 5 2 5 (06 0 - 0 4 0 10 — 5 0 2 0 )5 0 4 - 4
sAl O J OO
2 3
_ 一
2 4 2 5
D TXO 1 TX1 RX0
T A1 5 J 00
1 4
—
SJA1000 CAN控制器 peil模式 寄存器

验收屏蔽1
22 RX数据4 RX数据2 TX数据4 TX数据2 验收屏蔽2
验收屏蔽2
23 RX数据5 RX数据3 TX数据5 TX数据3 验收屏蔽3
24 RX数据6 RX数据4 TX数据6 TX数据4 保留(00H)
25 RX数据7 RX数据5 TX数据7 TX数据5 保留(00H)
26 RX数据8 RX数据6 TX数据8 TX数据6 保留(00H)
IER.0 RIE
接收中断使能
BTR0.7 SJW.1
同步跳转宽度1
BTR0.6 SJW.0
同步跳转宽度0
BTR0.5 BRT.5
波特率预设值5
总线定时0
BTR0.4 BRT.4 BTR0.3 BRT.3
波特率预设值4 波特率预设值3
BTR0.2 BRT.2
波特率预设值2
BTR0.1 BRT.1
波特率预设值1
1
SR.3
TCS
发送完毕状态
1
SR.2
TBS
发送缓冲器状态
1
1
SR.1
DOS
数据溢出状态
0
0)
SR.0
RBS
接收缓冲器状态
0
0
IR.7
BEI
总线出错状态
0
0
IR.6
ALI
仲裁丢失中断
0
0
IR.5
EPI
错误消极中断
0
0
中断
IR.4
WUI
唤醒中断
0
0
IR.3
DOI
数据溢出中断
0
0
IR.2
EI
错误警报中断
4 RXFIFO 的内部读/写指针复位到初始化值 连续的读 RXB 口将会得到一些未定义的值 一部分是
SJA1000说明

SJA1000--独立CAN控制器
概述
SJA1000是一款独立的控制器,用于汽车和一般工业环境中的控制器局域网络(CAN)。
它是PHILIPS半导体PCA82C200 CAN控制器(BasicCAN)的替代产品。
而且,它增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新特性的CAN 2.0B协议。
特性
和PCA82C200独立CAN控制器引脚兼容;
和PCA82C200独立CAN控制器电气兼容;
PCA82C200模式(即默认的BasicCAN模式);
扩展的接收缓冲器(64字节、先进先出FIFO);
和CAN2.0B协议兼容(PCA82C200兼容模式中的
无源扩展帧);
同时支持11位和29位识别码;
位速率可达1Mbits/s;
PeliCAN模式扩展功能:
--可读/写访问的错误计数器
--可编程的错误报警限制
--最近一次错误代码寄存器
--对每一个CAN总线错误的中断
--具体控制位控制的仲裁丢失中断
--单次发送(无重发)
--只听模式(无应答、无主动的出错标志)
--支持热插拔(软件实现的位速率检测)
--验收滤波器扩展(4字节代码,4字节屏蔽)
--自身信息接收(自接收请求)
24MHz时钟频率;
对不同微处理器的接口;
可编程的CAN输出驱动器配置;
增强的环境温度范围(-40-+125℃)。
sja1000t芯片功能原理

sja1000t芯片功能原理sja1000t芯片是一款广泛应用于汽车电子控制系统中的控制器局域网(CAN)控制器芯片。
它具有高度集成、高性能和稳定可靠的特点,在汽车电子系统中发挥着重要的作用。
sja1000t芯片的主要功能原理是通过CAN总线实现数据的传输和通信。
CAN总线是一种串行通信协议,它广泛应用于汽车电子控制系统中,用于连接各种电子设备,如发动机控制单元、仪表盘、传感器等。
CAN总线具有可靠性高、传输速率快、抗干扰能力强等优点,因此得到了广泛的应用。
sja1000t芯片作为CAN控制器,其核心功能是实现CAN总线的控制和数据的传输。
它通过与主控制器(如微处理器)进行通信,接收主控制器发送的指令和数据,并将其转换为CAN总线上的数据帧进行传输。
同时,它还能够接收CAN总线上的数据帧,将其解析为相应的指令和数据,并传递给主控制器进行处理。
sja1000t芯片具有丰富的功能和灵活的配置选项。
它支持多种工作模式,如基本模式、PeliCAN模式等,可以根据具体的应用需求进行选择。
同时,它还支持多种传输速率和数据帧格式,以适应不同的应用场景。
sja1000t芯片还具有强大的错误检测和纠正能力。
它能够检测和纠正CAN总线上的错误,如位错误、帧错误、CRC错误等,确保数据的可靠传输。
此外,它还提供了丰富的错误诊断功能,可以检测和报告总线上的各种错误情况,帮助用户进行故障排除和维修。
sja1000t芯片还具有灵活的外部接口和丰富的扩展功能。
它提供了多个GPIO(通用输入输出)引脚,可以与其他外部设备进行连接和通信。
同时,它还支持多种工作电压和电源管理功能,以适应不同的电子系统设计需求。
sja1000t芯片作为一款优秀的CAN控制器芯片,具有丰富的功能和灵活的配置选项,可以满足各种汽车电子控制系统的需求。
它的高性能、稳定可靠的特点使其在汽车电子领域得到广泛应用,并为汽车电子系统的发展做出了重要贡献。
CAN控制器SJA1000中文资料

广州周立功单片机发展有限公司 Tel 020 38730976 38730977 Fax:38730925
器 RXB 13 个字节 作为接收 FIFO RXFIFO 长 64 字节 的一个窗口 可被 CPU 访问 CPU 在此 FIFO 的支持下 可以在处理信息的时候接收其它信息 6.1.4 验收滤波器 ACF 验收滤波器把它其中的数据和接收的识别码的内容相比较 以决定是否接收信息 在纯粹的接收测试中
6.2 CAN 控制器的详细说明 SJA1000 在软件和引脚上都是与它的前一款 PCA82C200 独立控制器兼容的 在此基础上它增加了很 多新的功能 为了实现软件兼容 SJA1000 增加修改了两种模式 y BasicCAN 模式 与 PCA82C200 兼容 y PeliCAN 模式 扩展特性 工作模式通过时钟分频寄存器中的 CAN 模式位来选择 复位默认模式是 Basic CAN 模式 6.2.1 与 PCA82C200 兼容性 在 Basic CAN 模式中 SJA1000 模仿 PCA82C200 独立控制器所有已知的寄存器 在 6.2.1.1 到 6.2.1.4 节中所描述的特性不同于 PCA82C200 这主要是为了软件上的兼容性 6.2.1.1 同步模式 在 SJA1000 的控制寄存器中没有 SYNC 位 在 PCA82C200 中是 CR.6 位 同步只有在 CAN 总线上 弱势-支配 控制 的转换时才有可能发生 写这一位是没有任何影响的 为了与现有软件兼容 读取 这一位时是可以把以前写入的值读出的 对触发电路无影响 6.2.1.2 时钟分频寄存器 时钟分频寄存器用来选择 CAN 工作模式 Basic CAN /Peli CAN 它使用从 PCA82C200 保留下来的 一位 象在 PCA82C200 中一样 写一个 0-7 之间的值 就将进入 Basic CAN 模式 默认状态是 12 分频 的 Motorola 模式和 2 分频的 Intel 模式 保留的另一位补充了一些附加的功能 CBP 位 见表 49 的置位 使内部 RX 输入比较器旁路 这样在使用外部传送电路时可以减少内部延时 6.2.1.3 接收缓冲器 PCA82C200 中双接收缓冲器的概念被 Peli CAN 中的接收 FIFO 所代替 这对软件除了会增加数据溢出 的可能性之外 不会产生应用上的影响 在数据溢出之前 缓冲器可以接收两条以上信息 最多 64 字节 6.2.1.4 CAN 2.0B SJA1000 被设计为全面支持 CAN 2.0B 协议 这就意味着在处理扩展帧信息的同时 扩展振荡器的误 差被修正了 在 Basic CAN 模式下只可以发送和接收标准帧信息 11 字节长的识别码 如果此时检测到 CAN 总线上有扩展帧的信息 如果信息正确 也会被允许且给出一个确认信号 但没有接收中断产生 6.2.2 Basic CAN 和 Peli CAN 模式的区别 在 Peli CAN 模式下 SJA1000 有一个含很多新功能的重组寄存器 SJA1000 包含了设计在 PCA82C200 中的所有位及一些新功能位 Peli CAN 模式支持 CAN 2.0B 协议规定的所有功能 29 字节的识别码 SJA1000 的主要新功能
sja1000t芯片功能原理

sja1000t芯片功能原理
SJA1000T芯片是一种控制器局域网络(CAN)控制器,用于
实现CAN总线通信。
SJA1000T芯片的主要功能和原理如下:
1. 硬件通信:SJA1000T芯片通过CAN收发器与CAN总线进
行物理层通信,从而实现CAN总线上的数据传输。
2. 报文传输:SJA1000T芯片负责CAN总线上的报文传输。
它能够接收CAN总线上的报文,并将其存储在接收缓冲区中,然后根据设定的过滤和屏蔽规则,将符合条件的报文传递给主机CPU。
同时,它也能发送CAN报文,将待发送的报文存储
在发送缓冲区中,并按照CAN协议规定的优先级进行发送。
3. 错误检测和处理:SJA1000T芯片能够对发送和接收的报文
进行错误检测和处理。
它能够检测出传输过程中的位错误、帧错误、CRC错误等,然后将错误信息传递给主机CPU,由主
机CPU进行相应的处理。
4. 时间触发:SJA1000T芯片可以通过设置定时器来触发发送
报文。
这意味着它可以在指定的时间间隔内发送报文,实现定时发送功能。
总而言之,SJA1000T芯片是一种用于实现CAN总线通信的
控制器,它负责CAN总线上的报文传输、错误检测和处理,
并具备定时发送功能。
这使得它成为在汽车、工业控制等领域中广泛应用的CAN总线控制器。
项目二 汽车CAN总线技术基本原理(任务四SJA1000CAN控制器及其应用)

0
接收中断使能 1
0
功能
使能 禁止 使能 禁止 使能 禁止 使能 禁止 使能 禁止 使能 禁止 使能 使能 使能 禁止
Peli_RXD: PUSH ACC PUSH PSW CLR EA ;//关CPU中断
RE6: MOV DPTR,#SJA_IR MOVX A,@DPTR ANL A,#01H CJNE A,#00H,RE7;接收中断 SJMP RE8
IR.3 DOS 溢出中 1 置位
断
复位
IR.2 EI 错误报 1 置位
警中断 0 复位
IR.1 TI 发送中 1 置位
断
0 复位
IR.0 RI 接收中 1 置位
断
0 复位
Peli_RXD: PUSH ACC PUSH PSW CLR EA ;//关CPU中断
RE6: MOV DPTR,#SJA_IR MOVX A,@DPTR ANL A,#01H CJNE A,#00H,RE7;接收中断 SJMP RE8
----
状态
----
3(IR) 中断
---
中断
---
4(IER) 中断使能
中断使能 中断使能 中断使能
5
保留(00H) ---
保留(00H) ---
6(BTR0) 总线定时0
---
总线定时0 总线定时0
7(BTR0) 总线定时1
---
总线定时1 总线定时1
8(OCR) 输出控制
---
输出控制 输出控制
接收缓存器 标识符RTR,DLC 字节1-8 时钟驱动器
10 11 12-19
20 21 22-29 31
7
6
测试方 同步 式
CAN总线控制器SJA1000资料

• 支持11位和29位标识码
• 位速率最高可达1Mbps • 可与不同的微处理器接口 • 可编程的CAN输出驱动器配置 • 温度适应范围大(-40℃ — +125℃)
6.2 SJA1000介绍
6.3 SJA1000内部结构框图
机电工程与自动化学院
逻辑管理接口
发送缓 冲器
位流处 理器
位时序 逻辑
接收缓 冲器
仅用于测试
发送缓冲器 接收缓冲器
输出缓冲寄存器 TXB
输入缓冲寄存器 RX
√
√
√
√
FFH
√
×
√
30
31
时钟分频器
未用
时钟分频寄存器 OCR
FFH
√
×
部分√
FFH
√
×
√
6.4 基本模式(Basic CAN)
二、 SJA1000的工作状态
两种状态:复位状态和运行状态 1. 复位状态 三种情况下,SJA1000进入复位状态
CAN控制器的作用
CAN控制器扮演网络协议的角色 它提供了微处理器的物理线路的接口 进行数据的发送和接受
6.1
CAN控制器的作用
6.2 SJA1000介绍
• 管脚与独立CAN控制器PCA82C200兼容
• 电气特性与独立CAN控制器PCA82C200兼容 • 具有PCA82C200模式(即默认的BasicCAN模式) • 扩展的接收缓存器(64字节的FIFO队列) • 支持CAN2.0A和CAN2.0B协议
数据段
1. 报文被发送前,微处理器将报文写入发送缓冲区 2. 成功接收一个报文后 ,写入接收缓冲区 3. 微处理器读接收缓冲区并释放缓冲区
周立功CAN控制器SJA1000的控制模块BCAN

状态
SR.4 SR.3
SR.2
SR.1
SR.0
IR.7
IR.6
IR.5
IR.4 中断
IR.3
IR.2
IR.1
IR.0 验收代码 AC.7 0
验收屏蔽 AM.7 0
BTR0.7
BTR0.6
BTR0.5
BTR0.4 总线定时0
BTR0.3
BTR0.2
BTR0.1
BTR0.0
BTR1.7
BTR1.6
BTR1.5
2.3.3 各寄存器功能介绍 下面根据实际应用情况 具体介绍 BasicCAN 模式下 SJA1000 内部各寄存器的功能
2.3.3.1 控制寄存器(CR) 控制寄存器位于 SJA1000 寄存器区的 0 地址
如表 4 所示 表 4 控制寄存器各位的说明 CAN 地址 0
用于设置 SJA1000 访问模式和各种中断
软件置位控制寄存器中的复位请求位 或总线关闭 后 内部寄存器的配置
表 3 内部寄存器在复位模式下的配置 BasicCAN 模式
寄存器
位
CR.7
符号
保留
名称
硬件复位 0
值 软件或总线关闭 复位CR.0 0
CR.6
保留
×
×
CR.5
保留
1
1
控制
CR.4 CR.3
OIE
溢出中断使能
EIE
错误中断使能
×
×
×
×
完全兼容 PCA82C200 的基础上 增加了一种新的工作模式 PeliCAN SJA1000 完全支持具有很多新特性的 CAN 2.0B 协议 SJA1000 的工作模式通过其内部的时钟分频寄存器 CDR 中的 CAN 模式位来选择 硬 件复位时默认模式是 BasicCAN 工作模式
CAN通信控制器SJA1000

0
1 0
无动作
释放;作为RXFIFO中报文存贮空间的接收缓冲器被释 放 无动作 出现;如果不是已在进行中,等待处理的发送请求被取 消。(注:正在进行的发送是不能被中止的) 空缺;无动作 出现;一个报文将被发送 空缺;无动作
CMR.2
RRB
释放接收缓冲器
CMR.1
AT
中止发送
1 0
CMR.0
TR
发送请求
(1) CAN控制器模块的说明
6.位定时逻辑(BTL) 位定时逻辑监视串行CAN总线和处理与总 线有关的位定时。它被同步于一个报文起始 的“隐性至显性”总线跳变时的CAN总线上 的位流(硬同步),以及重同步于一个报文 接收期间的更多的跳变(软同步)。
(1) CAN控制器模块的说明
7.错误管理逻辑(EML) EML 负责传送层中调制器的错误界定。它 接收来自BSP的错误报告,然后将错误统计量 通知给BSP和IML
SJA1000 对微控制器来说,是以存贮器 - 映像 I/O 设备出现的。对 SJA1000 的操作是通过操作 SJA1000中的寄存器来实现的。 SJA1000地址区包括控制段和报文缓冲器。控 制段在初始化加载期间是可被编程的,以配置通 信参数(例如,位定时)。 CAN 总线上的通信 也由微控制器通过该段来控制。在初始化期间, CLKOUT 信号可以被编程为由微控制器指定的 一个值。
2 一般说明
SJA1000有两种工作模式:
BasicCAN模式——与PCA82C200兼容的模式 PeliCAN模式 ——扩展功能模式
工作模式通过时钟分频寄存器中的 CAN模式位来选择,复位 默认模式是BasicCAN模式。 两种封装形式:一种为 28引脚的塑质双列式
第七章 CAN总线控制器SJA1000

CAN总线收发接口电路82C250
• 82C250是CAN控制器与物理总线之间的 接口,它最初是为汽车高速通信(最高达 1Mbps)的应用而设计的。 • 器件可以提供对总线的差动发送和接收 功能。
CAN 总线的应用 CAN控制器SJA1000在系统中的位置
分布模块1
传感器 执行元件 MMI 模块控制器
新增功能:
– 标准结构和扩展结构报文的接收和发送; – 64字节的接收FIF0: – 标准和扩展帧格式都具有单/双接收滤波器(含接收 屏蔽和接收码寄存器); – 可进行读/写访问的错误计数器; – 可编程的错误报警限制; – 最近一次的错误代码寄存器; – 每一个CAN总线错误都可以产生错误中断; – 具有丢失仲裁定位功能的丢失仲裁中断; – 单发方式(当发生错误或丢失仲裁时不重发); – 只听模式(监听CAN总线,无应答,无错误标志; – 支持热插拔(无干扰软件驱动位速率检测); – 硬件禁止CSI参考模型中的两层:物理层 接受滤波、超载 和数据连路层
逻辑链路控制(LLC) 媒体访问控制(MAC) 物理信令(Physical Sisnal Lins, PSL) 物理媒体附件( Physical Attachment, PMA) 媒体接口(Medium Dependent Interface, MDI) 数据 链路 层
SJAl000在软件和引脚上都是与它的前—款 PCA82C200独立CAN控制器兼容的,在此基础上 增加了很多新的功能。为了实现软件兼容, SJAl000采用了两种工作方式: Basic CAN方式(PCA82C200兼容方式)和PeliCAN方 式(扩展特性方式)。工作方式通过时钟分频寄存 器中的CAN方式位来选择。 上电复位默认工作方式是Basic CAN方式,Basic CAN和PeliCAN方式的区别如下:在PeliCAN方式 下,SJAl000有一个重新设计的含很多新功能的 寄存器组。SJAl000包含PCA82C200中的所有位, 同时增加了一些新的功能位。PeliCAN方式支持 CAN2.0B协议规定的所有功能(29位的标识符)。
SJA1000独立的CAN控制器应用指南

SJA1000 独立的CAN控制器应用指南-外文资料翻译

外文资料翻译译文SJA1000 独立的CAN控制器应用指南1 介绍SJA1000是一个独立的CAN控制器,它在汽车和普通的工业应用上有先进的特征。
由于它和PCA82C200 在硬件和软件都兼容,因此它将会替代PCA82C200。
SJA1000有一系列先进的功能适合于多种应用,特别在系统优化、诊断和维护方面非常重要。
本文是要指导用户设计基于SJA1000 的完整的CAN节点。
同时本文还提供典型的应用电路图和编程的流程图。
2 概述SJA1000 独立的CAN控制器有2个不同的操作模式:BasicCAN模式(和PCA82C200)兼容PeliCAN模式BasicCAN模式是上电后默认的操作模式。
因此,用PCA82C200开发的已有硬件和软件可以直接在SJA1000上使用,而不用作任何修改。
PeliCAN模式是新的操作模式,它能够处理所有CAN2.0B 规范的帧类型。
而且它还提供一些增强功能使SJA1000能应用于更宽的领域。
2.1 CAN 节点结构通常,每个CAN 模块能够被分成不同的功能块。
SJA1000使用[3] [4] [5]最优化的CAN收发器连接到CAN 。
收发器控制从CAN控制器到总线物理层或相反的逻辑电平信号。
上面一层是一个CAN 控制器,它执行在CAN规范[8]里规定的完整的CAN协议。
它通常用于报文缓冲和验收滤波,而所有这些CAN功能,都由一个模块控制器控制它负责执行应用的功能。
例如,控制执行器、读传感器和处理人机接口(MMI)。
如图1所示,SJA1000独立的CAN控制器通常位于微型控制器和收发器之间,大多数情况下这个控制器是一个集成电路。
图1 CAN模块装置2.2 结构图下图是SJA1000 的结构图图2 SJA1000的结构图根据CAN规范,CAN核心模块控制CAN帧的发送和接收。
接口管理逻辑负责连接外部主控制器,该控制器可以是微型控制器或任何其他器件。
经过SJA1000复用的地址/数据总线访问寄存器和控制读/写选通信号都在这里处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
; 选择 )(&@. .(/ 模式、 时钟不输出 ; 节 点 号 /2:A.2:A 写 入 (.0
4"5 节 点 上 .69 的 软 件 设 计 。 不 论 是 节 点 % 、 " 或是其它 底层节点, 都 要 用 到 .(/ 通 信 , 因 此 都 要 设 置 .(/ 控 制 器。其初始化的流程图如图 3 所示。
-(. 还 是 )>?9-(. , 还 用 于 -,K4JF 引 脚 输 出 时 钟 频 率
的设定, 在上电初始化控制器时必须首先设定; 在工作 模 式 下 , 控 制 寄 存 器 -H 用 于 控 制 -(. 控 制 器 的 行 为 , 可读可写; 命 令 寄 存 器 -7H 只 能 写 ; 状 态 寄 存 器 &H 只
&’(%###
单片机
接收信息才 当 接 收 的 信 息 的 识 别 码 与 (&) 检 验 相 符 时 , 最 终 被 写 入 HG0 或 HG3+34 中 。 HG3+34 最 多 可 以 缓 存 该 数 据 可 被 -)J 读 取 。I7, 负 责 传 送 层 12 字 节 的 数 据 , 中 调 制 器 的 错 误 管 制 , 它 接 收 0&) 的 出 错 报 告 , 促 使 0&) 和 +7, 进 行 错 误 统 计 。
+ ,-.+/// 简 介
&’(%### 是 )*+,+)& 公 司 早 期 -(. 控 制 器 )-(/"-"##
的替代品, 功能更强, 具有如下特点:
! 完 全 兼 容 )-(/"-"## 及 其 工 作 模 式 , 即 0(&+-(. 模 式 ; " 具有扩展的接收缓冲器, 12 字节的 3+34 结 构 ; # 支 持 -(."5#0 ; $ 支 持 %% 位 和 "6 位 识 别 码 ; % 位 速 率 可 达 %789: ; < ; & 支 持 =>?9-(. 模 式 及 其 扩 展 功 能 ; ’ "27*@ 的 时 钟 频 率 ; (支持与不同微处理器的接口; ) 可 编 程 的 -(. 输 出 驱 动 配 置 ; ( A2#BCD%"EB ) 。 *增强了温度范围
集成电路应用
!"# 控制器 $%"&’’’ 及其应用
西安航空技术高等专科学校电气工程系 ( L%##LL ) 韩 党 群
要 : 介 绍 -(. 控 制 器 &’(%### 的 特 点 、 内 部 结 构 以 及 &’(%### 的 寄 存 器 结 构 及 地 址 分 配 ; 并 以 独 立 -(. 控 制 器 &’(%### 为 例 , 结 合 -(. 协 议 说 明 了 一 种 通 用 型 -(. 总 线 -(. 协 议 通 信 格 式 。 的开发与设计。 关 键 词 : -(. 总 线 摘
性而自动进行的。任何帧与帧之间是帧间 空间。
能 读 ; 而 3) 、 *() 、 *4) 、 05)% 、 05)! 、 6() 在 工 作 模 式 下读写无意义。通常, 在系统初始化时, 先 使 ()7% 8! ,
% 设计实例
%&’ 整 体 设 计 思 路 这 里 用 29*!%%% 与 *5="(#! 芯 片 设 计 一 种 具 有 通 用性的工业测控系统, 系统的结构图如图 ’ 所示。
低四位标示数据场所含字节数的多少, 称为
<?( 。 )5) 与 <?( 共 同 构 成 控 制 场 。 发 送 的
数据组成数据场, 最多不超过 = 个字节。远 程帧与数据帧的形式差别在于没有数据场。 除此形式上的差别外, 在 远 程 帧 中 )5) 位 须 置 “! ” , 表示请求数据源节点向它的目的节 点 (即发送远程帧的节点) 发送数据。源节 点接收到该帧后,把要发送数据用数据帧 发 给 目 的 节 点 , 完 成 数 据 请 求 。 ()( 场 与
1 ,-.+/// 的 寄 存 器 结 构 及 地 址 分 配
表 % 是 工 作 在 0(&+- -(. 模 式 下 的 &’(%### 的 寄 存 器 结 构 及 地 址 分 配 表 。 -(. 控 制 器 工 作 模 式 的 设 定 、 数 据 的 发 送 和 接 收 等 都 是 通 过 这 些 寄 存 器 来 实 现 的 。时 钟 分 频 寄 存 器 4-H 用 于 设 定 &’(%### 工 作 于 0(&+-
帧起始 帧间空间 仲裁场 控制场 数据场 数据帧 图 & 数据帧结构
理论上任何一个节点都 (*/ 总 线 是 一 种 多 主 总 线 , 可 以 作 为 主 节 点 。 在 本 系 统 中 设 置 与 上 位 ,( 机 相 连 的 节点 ! 和节点 & 为上位节点, 其它节点为底层节点。在 任务比较简单的系统中, 也 可 以 只 设 置 一 台 上 位 ,( 机 , 机 通 过 串 口 与 节 点 上 的 (,1 通 信 , ,( (,1 再 与 (*/ 控 制 器 29*!%%% 通 信 , 实 现 信 息 在 (*/ 012 上 的 发 送 与 而底层节点根据应 接收。节点 ! 与节点 & 的结构相同, 用 的 不 同 具 有 不 同 的 功 能 。 但 它 们 都 具 有 与 (*/ 012 通信的能力, 上传数据和接收数据。
,( !
节点 !
29*!%%% 进 入 复 位 模 式 。 在 此 模 式 下 3) 、 *() 、 *4) 、 05)% 、 05)! 及 6() 均 可 读 可 写 , 此 时 设 置 相 应 的 初 值。 当退出复位模式时, 29*!%%% 即 按 复 位 时 设 定 的 相 应
情况工作于工作模式, 除非再次使芯片复位, 否则上次 设定的值不变。 当需要发送信息时, 若发送缓冲器空闲, 再 由 (4) 控 制 发 送 ; 当接收 由 (,1 控 制 信 息 写 入 5:0 , 缓 冲 器 ):;3;6 未 满 且 接 收 信 息 通 过 了 *2, , 则 接 收 到 的 信 息 被 写 入 ):;3;6 。 可 通 过 两 种 方 法 读 取 接 收 到 的 信息。一种方法是, 在中断被使能的情况下, 由 29*!%%% 向 (,1 发 中 断 信 号 , (,1 通 过 2) 及 3) 可 以 识 别 该 中 断, 并读取数据释放接收缓冲器; 另一种方法是直接读 取 2) , 查 询 ):;3;6 的 状 态 , 当有信息接收时, 读取该信 息并释放接收缓冲器。当接收缓冲器中有多条信息时, 当前的信息被读取后,接收缓冲器有效信号会再次有 效, 通过中断方式或查询方式可以再次读取信息, 直到 如 ):;3;6 中 的 信 息 被 全 部 读 出 为 止 。 当 ):;3;6 已 满 , 还有信息被接收, 此接收信息不被保存, 且发出相应的 缓 冲 器 溢 出 信 号 供 (,1 读 取 处 理 。
% ! & ’ # F G =
" !% !! !&
・ ・ ・ 接 收 缓 冲 器
)<3< % )<3< ! ):<*5* !
・ ・ ・
&% &! &&
・ ・ ・
5:3< % 5:3< ! 5:<*5* !
・ ・ ・பைடு நூலகம்
5 : 0
):<*5* =
时钟分频 寄 存 器 6()
&" ’!
5:<*5* =
!"
*(+ 场 都 是 在 低 层 次 上 为 提 高 传 输 的 可 靠
%&( 电 路 原 理 图 节 点 ! 与 节 点 & 的 原 理 图 如 图 - 所 示 。*5="(#! 通 过 4*:&’& 与 ,( 机 串 行 通 信 。 设 置 29*!%%% 工 作 于 3@A 由 ,( 机 发 送 的 数 据 写 入 *5="(#! , 再 通 过 ,% BCD 模 式 , 口 及 控 制 信 号 将 数 据 写 入 29*!%%% 并 通 过 (*/ 收 发 器 发送。接收数据是通过中断进行的, (*/ 012 的 数 据 经 (*/ 接 口 芯 片 =&(&#% 接 收 并 写 入 29*!%%% 的 ):;3A ;6> 然 后 通 过 中 断 提 请 (,1 读 取 。 读 取 的 数 据 由 )2&’& 口 上 传 送 给 ,( 机 。 在 本 系 统 中 其 它 节 点 不 与 ,( 机 通 信 > 此 时 可以 *5="(#! 除 与 29*!%%% 相 接 的 口 线 外 还 剩 余 口 线 ,
0 ,-.+/// 内 部 结 构
&’(%### 的 内 部 结 构
如图 % 所示,主要由接口 管 理 逻 辑 +7, 、 信 息 缓 冲 器 ( 含 发 送 缓 冲 器 FG0 和 、 位 接 收 缓 冲 器 HG3+34 ) 流 处 理 器 0&) 、 接 收 过 滤 器 位 时 序 处 理 逻 辑 0F, 、 错误 (&) 、 管 理 逻 辑 I7, 、 内部振荡器及复 位 电 路 等 构 成 。 +7, 接 收 来 自 -)J 的 命 令 , 控 制 -(. 寄 存 器 的寻址并向主控器提供中断信 息 及 状 态 信 息 。 -)J 的 控 制 经
127> ?:6’0;( 127 :6’0;<.:0 127 (;<##= 127> ?:6’0;( 127 (;</2:A.2:A 127> ?:6’0;( 127> :6’0;<(10 127 (;<##= 127 ?:6’0;(