CAN 总线通信控制芯片SJA1000 的读写
2015-05-29 17:02
344 查看
SJA1000 控制信号的产生
CAN总线通信控制芯片SJA1000 没有提供单独的地址线,而使用可以与Intel 和Motorola系列微控制器兼容的分时复用地址/ 数据线。在一个读写周期内,微控制器首先输出操作地址并使地址锁存信号ALE 有效,SJA1000 在ALE 信号的下降沿将操作地址锁在片内;之后微处理器发出读写信号进行数据传输。但S3C44B0x 的数据线和地址线是分离的,对SJA1000 的读写操作需要模拟微控制器,先在数据线上写一个操作地址,并模拟产生一个ALE 信号锁存这个地址,之后进行正常的读写操作。系统使用地址线ADDR0 区分地址传输和数据传输:写奇地址时,不选通SJA1000 芯片,但给出一个有效的模拟ALE 信号;读写偶地址时,选通SJA1000 读写数据。另外,系统同时有两路CAN 总线接口,读写操作根据地址线ADDR1 区分两个SJA1000 芯片,两个片选信号和ALE 信号都要通过GAL 芯片产生,各信号如图5所示。
图中虚线是向SJA1000 传输和锁存地址的过程,实线是读写操作的过程。用ABEL 语言书写的各信号产生逻辑式为:
CAN-CS =
nGCS4 # ADDR0 ;
ALE = ! nWE &ADDR0 & ! nGCS4 ;
对SJA1000 的操作地址如下:地址锁存向0x08000001端口写地址;数据读写通过地址0x08000000。
相关文章推荐
- linux -- ubuntu dash bash
- 代码之美:实现数绕圈打印
- openstack 之 windows server 2008镜像制作
- C学习笔记(七)字符串与字符串函数
- java 基础学习-03 api 中String类的学习
- 详解session和cookie
- ARM ® and Thumb ®-2 指令系统
- 从零配置hibernate
- php bom \ufeff
- onclick弹出新窗口
- Swift开发教程--实现UITableView报错does not conform to protocol 'UITableViewDataSource‘
- Android中创建文件夹和文件的操作
- Oracle学习(2):过滤和排序
- FND Debug Log(FND_LOG_MESSAGES)
- 第十二周 项目三 日期时间类
- DeJaVu update history
- 【转】 Git 常用命令详解(二)----不错
- 我是怎么理解编程的?
- .net 过滤特殊字符
- iframe自适高度宽度,多版本浏览器兼容