阅读:1584回复:6
问个can总线的问题
我在看philips的can总线控制器sja1000,有一个问题百思不得其解,望高人指点
sja1000 是如何被host cpu访问控制的?他有8位的地址数据复用总线,但是从来没有什么时序图,那就是说地址根本不用译码? sja1000的datasheet说sja1000内部寄存器通过映射以后,host cpu就象访问自身内存一样访问这些寄存器,那就是说更不用地址译码了? 还有,sja1000有个ale(地址锁存输入信号),这个信号又怎样用? |
|
沙发#
发布于:2003-11-07 08:27
我也在看CAN,BOSCH的specification 都没弄懂......郁闷的我不行... :(
|
|
板凳#
发布于:2003-11-07 09:34
北航最近出了一本《现场总线can原理与应用技术》饶运涛等
虽然都是翻译的那几个datasheet 但还是有点价值,你可以买一本 我个人觉得,can2.0的规范倒并不是很需要在意,关键是要研究一款 can的通讯控制器,因为好多东西都是这个通讯控制器棒你实现了! |
|
地板#
发布于:2003-11-07 11:34
用户被禁言,该主题自动屏蔽! |
|
地下室#
发布于:2003-11-10 08:05
谢谢bluster!以后有问题还得多向你请教阿~ :)
|
|
5楼#
发布于:2003-12-26 20:14
仁兄:
CAN是地址和数据复用,ALE信号就是进行地址锁存的,这样就免去外接373等的地址等锁存芯片,电路图就变得简单啦。如果CSP2。7 那么其首地址为0x7f00啦 其 #define CR_CAN XBYTE[0x7f00] //控制寄存器 #define CMR_CAN XBYTE[0x7f01] //命令寄存器 #define SR_CAN XBYTE[0x7f02] //状态寄存器 #define IR_CAN XBYTE[0x7f03] //中断寄存器 #define ACR_CAN XBYTE[0x7f04] //验收代码寄存器 #define AMR_CAN XBYTE[0x7f05] //验收屏蔽寄存器 #define BTR0_CAN XBYTE[0x7f06] //总线定时寄存器0 #define BTR1_CAN XBYTE[0x7f07] //总线定时寄存器1 #define OCR_CAN XBYTE[0x7f08] //输出控制寄存? //预定义CF 呵呵,这样说明白了吗 |
|
6楼#
发布于:2003-12-27 11:07
还不如定义一个0x7f00开始的数组。
初始化时朝里面写值。 |
|