sja1000上手很快,确实很方便。不过在要求比较高的情况下就得好好写软件了。

请问PeliCAN下可否同时使用16~28这段地址,写的时候好像不能发哈。而且对于发送报文时同时也会将报文复制到16~28这些地址里,我觉得意思不大啊,不知道有什么作用。谢谢

我没太明白您那个“写的时候好像不能发“呀追问

呵呵对不起,我没说清楚。TBSR与RBSR共用地址为16~28的RAM,那么在想通过sja发送报文时要把报文写入TBSR,这个时候会如果RBSR里有未读报文的话,可以写数据进16~28吗。我觉得不能。我面临的情况是需要快速的收发报文,51+sja+82c250作为TTL——CAN的转换器,需要51从挂接的外设通过串口收到报文后发送至总线,这其中如何确定从串口收到的是一个整帧,而且如何解决RBSR与TBSR的分时利用问题

追答

嘿嘿,其实我现在还属于设计阶段,还没进行实际的通讯实验,所以不敢确定他的通讯具体是什么样的。
但是就你所说的情况,我认为即使你要快速的收发报文,也不应该有一直没有空隙去发送报文的情况,单片机的读取速度还是很快的,在CAN总线上,一条报文的接收最少也要几十微秒,这时候你应该有充分的时间读取一帧报文,至于是否从CAN总线上收到了一个整帧可以通过状态寄存器查看。
还有我认为RBSR里的未读报文实际上是存在RXFIFO里的,在你读取16~28地址时,报文才会从RXFIFO里弹出,因此在有未读报文时,你向16~28地址中写入数据应该是不会有错误产生,如果说会丢失报文的话,也是RXFIFO溢出了,无法再接收新的报文时候才会发生。
这些是我的看法,建议你在实际应用中做一些小测试,很多问题就清楚了,如果有说的不对的地方,还请见谅~祝你成功哈~

来自:求助得到的回答
温馨提示:内容为网友见解,仅供参考
无其他回答

SJA1000发送数据的波形总是只有一个低起始,后面就是高电平,FPGA配置...
采用基于ARM微处理器的单板机系统建立...S3C44B0x 的数据、地址和控制信号线...总线上的设备节点之间直接通过SJA1000...这些缓冲页的一部分作为接收缓冲区,...

求助:单片机及嵌入式行业所具备的知识技能
对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业 IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人当然很难找。

相似回答
大家正在搜