上述的代码通过CanInit()函数的执行情况就可以大致的判断SJA1000的操作是否正确,通过对相关写入的寄存器做读出操作,如: WR_SJA(SJA_AMR3,0xff); I= RD_SJA(SJA_MOD); 通过判断I=0xff,是否相等来说明对SJA1000的操作的正确性的判断,如果写入SJA_AMR3地址的数据与读出来的数据是一样的,则说明对SJA1000的操作起得初步的胜利,但是是否能够顺利的进行CAN通信还与发送数据的操作以及相关的寄存器的操作相关,但是既然能够正确的操作寄存器的话,离成功也不远了。 我在SJA1000的代码的移植上,一直不太顺利。出现某些寄存器的读写不正确,我已经尽力的将主时钟降低,同时加大时序间的延时,但是依就有几个还是有问题。表现出通信不太稳定的现象。最后怀疑我的硬件连接线的原因,因为所有的连接线都是20cm的杜邦线连接的,所以这点不容忽视。目前由于硬件电路无法克服的原因,同时不可能去找到可替代的LPC1343的PCB板重新的做布板,所以只好不再对相关的操作作深入的探讨,上面的相关代码在C8051Fxxx及飞思卡尔的平台下都没有任何的问题的实现过,本来想借这个机会扩展到LPC1343上,但是目前视乎没有什么可以改进的地方,soso姐送的LPC1343已经被我搞的没有人型料。 本来想实现一个LPC1343的CAN总线节点与ZLG的CAN转接卡的配套二次开发的,但是硬件上的原件不可能做更多的更改,自己写的基于c#上位机软件也不能拿来展示实际的效果。但是咱EEWORLD的旗帜还是得竖上去,呵呵。展示一下该上位机软件的效果图,该软件为相关接口卡的二次开发的,同时自己也添加上自己写的串口调试助手的功能。

实现简单的串口调试以及数据监测作用。采用串口件直接做的,通过相关参数修改得到一些不同波特率以及不可串口编号的端口的操作。

实现的目标功能是上位机软件发送数据到LPC1343的CAN节点,同时LPC1343收到确认无误的数据帧以后做相关的回应。这个过程的实现基本上可以说明由PC端到转接卡,然后再到LPC1343的过程是完好的,目前主要是LPC1343+SJA1000的数据链路没办法正确的建立,这点很是遗憾。愧对SOSO姐与EEWORLD的期望。当然其他的同学要是有更好的条件实现的话,亦或是以后有谁个做这个PCB的话我还是很愿意接着做这个LPC1343+SJA1000的探讨的。然后在实现整个的系统的建立。 至此相关CAN总线的硬件、软件分析已经完成,本人也将所有的经历全部的投入到新的领域的学习中希望以后能够借助EEWORLD这个平台结识更多的朋友与同仁。感谢在这期间给予我不断支持与帮助的soso姐以及EEWORLD网站。感谢NXP的Lpcxpresso_LPC1343的DEMO板,虽然你们可能、或许、肯定会恨我。因为我没有在LPCXpresso软件上做相关的技术交流与推广,同时也没有拿着你的板子去研究那个憋足的LPC-LINK功能,而是去做MDK+JLINK的交流。或许这个与你们的初衷不太一致,但是我还是由衷的感谢你的这块板子,你也得谢谢我这个潜藏的客户,为你们的这个片子做的努力。 -----------------西城 6/10/2010 11:54:40 PM
本贴可以满足个人对LPC1343的入门需求,尤其是MDK+JLINK平台的建立,有指导性的借鉴作用。 论坛地址:https://bbs.eeworld.com.cn/thread-103644-1-1.html 会持续的解决相关网友的提问。同时如果有相关的技术问题,还请论坛跟帖探讨。都是新人不要有啥顾忌,本人也是血肉之躯也会犯错。希望得到大伙的指正@@!
[ 本帖最后由 pepsi360 于 2010-6-11 00:32 编辑 ] |