原创 CAN的BasicCAN模式

2009-1-13 21:40 5684 5 5 分类: EDA/ IP/ 设计与制造


https://assets-stash.oss-cn-shanghai.aliyuncs.com/album/old-resources/2009/1/13/46a87ccb-5117-4474-9111-7922988a9872.rar    呵呵,总算折腾出来点东西了,两块CAN板之间发送数据有中断产生了,并且可以显示接收数据了,高兴之余不忘记了分享,虽然说简单但是总是有点点收获了。把助学板买回来就开始折腾了,但是我还是坚持我的原则,不看开发板例程,自己动手做所有的程序。



先是下载程序,就看了STC-ISP.exe中的那五个步骤,下载成功了。前四项的选项我都没有仔细研究,但是最后一个步骤的第一个选项我看了。因为以前用AVRAVR Studio下载程序都是自动载入的,而这个难道每次都需要执行步骤2吗。仔细看了下“每次下载前重新调入己打开在缓冲区的文件,方便调试使用”,于是选上,再次进行了程序下载,果然不用每次执行步骤2了。步骤五的第二个选项,我感觉我自己用不了,也就没用了。



用下载程序自带串口调试助手方便,第一次在家中的电脑调试没有任何问题,因为仔细检查了“COM”号,“波特率”、“检验位”、“数据位”、“停止位”。同时在接收区的下方选择“十六进制显示”,在单字串发送区的下方同样选择“十六进制发送”,这样发送0-F,程序都可以接收为了程序的简单。第二次在公司电脑,没太在意就搞了半天。



写程序总是由最简单开始,因为CAN通讯第一次使用,所以先把其它所有可能的问题得都先排除。于是先调试了数码管显示,包括显示各种数据,接着调试串口,确定发送和接收都没有问题,再接着调试了SJA1000连接到STC的中断引脚。   



在具备了初步的条件后,接着仔细阅读了SJA1000Datasheet。读完之后的第一个概念和印象是确定STC单片机的映射地址,CS片选为低(P20)ALERDWR不用管,RST接到STC单片机的P23,由此可确定映射地址的P23为高,P20为低。其余位为任意。我选择了最简单明确的就是0x800。于是用串口发送命令,来分别读SJA1000的寄存器的值,读Interrupt的值为224Status寄存器的值为12。和Datasheet上的复位值相同,可证明地址线的连接没有问题。



紧接着的问题是,如何让系统处于BASICCAN或者PELICAN呢,仔细阅读后发现这一模式为地址31clock divider的最高位确定的(0则为BasicCAN 模式、为1则为PeliCAN模式)。接下来出现的问题是,如何让系统处于Reset mode OR operating mode,由控制位的最低位CR.0来确定的,在上电时是RESET模式,当这位由高变为低时,进入运行模式。



进入正式编程,配置了控制寄存器,接收代码寄存器、接收屏蔽寄存器、总线时序寄存器0和寄存器1,还有clock
divider
寄存器,还有发送IDRTR及数据长度DLC。可是怎么调试也不成功,查找资料也没有。于是从EDN上下载下来,通讯自测试程序,一看原来不是BasicCan模式是Pelican模式。网上查了半天也没有找到点有用的程序,于是停止了研究,第二天早上开始。大清早一看,好象单单少配置了个output control寄存器,配置测试,单板测试,哦,LED3LED4点亮了,可能有所收获了。于是连线将两块板连接起来,一测试,另一块板显示了。呵呵成功了。



成功了就休息休息,我想接下来的内容会更加容易的。于是就写了上面的这些,写完这些,想了想刚才的状态,在单板的时候两个指示灯亮,联调时只是在闪烁。于是试着把一个板的电源断了,在另外一个板发送,这时指示灯还是持续点亮,于是把电源打开,哈,灯熄灭了,同时数据也接收正确。不写了,这就是CANSJA1000的结合,想用万用表测量测量,写写结果,可是这属于下午的事情了。至于这个功能是SJA1000的作用还是CAN协议的规定,还有待学习。



文章评论0条评论)

登录后参与讨论
相关推荐阅读
xingwang.huo_774980561 2010-10-22 22:44
新唐研讨会
参加新唐研讨会中了个三等奖,汉王电纸书。回来后依次按光盘说明,测试了两块板,都工作OK。接着安装了ICP软件,两块均连接成功,标记。...
xingwang.huo_774980561 2010-01-19 15:53
645标准
经常在网上找些标准非常费劲,今天客户要求做个远程抄表系统,让正泰发了个645标准。...
xingwang.huo_774980561 2010-01-19 15:51
台达触摸屏幕保护与密码功能示例
应客户要求给写了个简单例程,不过也费了我2个小时哦,触摸屏的屏幕保护功能设计编程可能存在问题,所以我也走了不少弯路。...
xingwang.huo_774980561 2009-12-10 22:21
NVIC&GPIO中断测试
这一块停止了好几天了,因为总感觉没有理解,今天总算是理解了一点。唯一的结论就是多看Cortex-M3。程序非常非常简单,但是现在还有一个最大的疑点就是不知道为什么,用STLINKII一设置断点,程序就...
xingwang.huo_774980561 2009-12-07 20:34
intercontrol&ifm
最近一直忙于工作,不过今天总算将易福门与InterControl调试成功了,算是今天比较高兴的事。不过易福门的CR2031总是发些无关紧要的数据,明天还得好好验证验证。...
xingwang.huo_774980561 2009-12-03 22:14
Cortex的Bit-Band简测
在CM3中有两个区中实现了位带,一个是SRAM区的最低1MB范围;另一个则是片内外设区的最低1MB范围。SRAM的位带的实际功能暂时不知如何应用,应该是类似于应用在OS中的互斥信号之类吧。但片内外设的...
我要评论
0
5
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /4 下一条