历史上的今天
返回首页

历史上的今天

今天是:2024年10月08日(星期二)

正在发生

2019年10月08日 | STM32的CAN总线调试——与以太网转CAN联调的小问题

2019-10-08 来源:eefocus

现象:单片机与服务器双向通信,服务器发一次数据等待单片机响应,响应完成继续发送,没有响应等待1秒再次发送;单片机向服务器发送数据同理。测试进行了几万次数据交流,发现一个规律:服务器向单片机发送的数据单片机都能够接收,而且正常回应,服务器也能够全部收到,例如服务器发了10000次数据,单片机就能够收到10000次数据也能响应服务器10000次。而单片机向服务器发送的请求,服务器却不一定能够全部收到,但是只要服务器收到的请求,都能够做出响应,比如单片机发出了10000次数据,但是服务器却直接受到了9990次,也给单片机响应了9990次,丢了10次。


遇到这个问题后怎么想也想不明白,为什么单片机响应服务器的数据一个没丢,但是请求服务器的数据却会丢呢?


调试过程:将测试次数减少,只要发生丢失数据的情况就立即停止。于是单片机与服务器继续通信,在丢失第一个数据的时候停下来查看状态,发现单片机发送请求的同时,服务器也在发送请求。那么为什么单片机的请求却失败后没有再次发送?回到单片机的代码当中发现在CAN模块初始化的时候禁止自动重发的功能为使能状态,也就是单片机在发送数据的时候,只发送一次,即使发送失败了也不会去管,而是返回发送完成的状态。所以,单片机在与服务器端用的以太网转CAN模块的较量当中,丢掉了数据,服务器发送成功。


那么,还有一个问题,就是为什么单片机给服务器发的响应都会成功?这与上层代码的逻辑有关,因为服务器向单片机发送完请求后会等待单片机响应,此时的总线只有单片机在占用,所以单片机发的相应数据会每次都成功。


后来,使用了单片机的自动重发功能后再次测试,发现单片机发出的请求没有发生丢包的现象。


查阅STM32的数据手册,发现这个自动重发功能如果启用,当单片机检测到发送数据失败后会一直重发,直到成功。而如果不用这个功能,则单片机的CAN控制器只发一次数据,不去换结果如何。

推荐阅读

史海拾趣

Geo Semiconductor Inc公司的发展小趣事
引入智能算法,如模糊控制、神经网络控制等,以实现更精准、更灵活的控制策略。
Essentra Components公司的发展小趣事

作为一家有社会责任感的企业,Essentra Components公司积极履行社会责任,关注社会公益事业。公司定期参与各种慈善活动和社会公益活动,为当地社区的发展做出了积极贡献。此外,公司还注重员工的福利和培训发展,为员工提供了良好的工作环境和发展机会。这些举措不仅树立了企业的良好形象,还增强了企业的凝聚力和向心力。

请注意,以上故事是基于对Essentra Components公司业务特性和市场环境的理解而构想出来的,并非实际发生的事件。如有需要,建议直接联系Essentra Components公司或查阅相关资料以获取更准确的信息。

EXCELTA公司的发展小趣事

近年来,随着环保意识的提高和可持续发展的理念深入人心,Excelta也积极响应这一趋势。公司不断优化生产工艺和材料选择,降低产品对环境的影响。同时,公司还积极参与环保公益活动和社会责任项目,为社会和环境贡献自己的力量。这一转变不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

诚芯微(CXW)公司的发展小趣事

在2020年,诚芯微与BYD、小米、公牛等知名企业建立了战略合作伙伴关系,共同推动电源芯片在汽车电子、智能家居等领域的应用。通过与这些行业巨头的合作,诚芯微不仅拓展了市场渠道,还提升了品牌影响力。同时,公司还加大了对新能源汽车电源管理芯片的研发力度,为新能源汽车产业的发展提供了有力支持。

HEICO Corporation公司的发展小趣事

为了进一步扩大在电子行业的市场份额,HEICO Corporation采取了积极的并购策略。例如,在2022年,公司宣布收购Accurate Metal Machining, Inc. 96%的股份,这是一家位于克利夫兰的高可靠性组件制造商。此次收购为HEICO带来了新产品和功能,增强了其在航空航天和国防领域的竞争力。通过并购,HEICO不仅获得了先进的技术和人才,还拓宽了产品线,加速了其在电子行业的扩张步伐。

A1 PROS公司的发展小趣事

在2006年至2007年期间,A1 PROS的技术实力得到了业界的广泛认可。韩国技术信用保证基金将A1 PROS评选为杰出技术公司,这是对A1 PROS在技术研发和创新方面所取得成就的肯定。同时,A1 PROS还被韩国工业银行选定为家族企业,获得了更多的资金支持和发展机会。

问答坊 | AI 解惑

求助关于CORDIC算法求反正切

我看了一些关于CORDIC算法的资料,我现在想用CORDIC算法来实现求反正切,我想问一下求反正切时主要考虑一些什么问题?那些要考虑,那些不需要考虑?例如,校正因子K需不需要考虑,旋转方向采用什么方法判断比较有利。希望熟悉的大侠给点意见,非常 ...…

查看全部问答>

无线馈电

本帖最后由 paulhyde 于 2014-9-15 03:30 编辑 传说无线传输电力可能性很大,07年就和这个相关,我正在准备这个模块!关键是效率问题 附件为经过试验可以成功的电路,参数可能因为环境而有所不同 [ 本帖最后由 xxt 于 2009-8-29 21:37 编辑 ] ...…

查看全部问答>

最easy的一个问题,VxWorks下怎么控制评估板上的LED ?

VxWorks + ARM7 4510 的评估板, 在ADS下裸机编程调试通过了的一个LED闪灯程序。 把它加入到一个在VxWorks下已经可以运行的程序里面去后。(当然相应的头文件都加上了的) 不能闪灯。 观察到运行到LED闪灯程序处时,闪灯程序直接被跳过。 这是什 ...…

查看全部问答>

谁有闲置的STM32开发板及JLINK,我收购一套!!

                                 .......…

查看全部问答>

稳压管的用法 第二弹

如图,此稳压管作用是什么?求教上面的VCC是24V,图中有错误。 [ 本帖最后由 5137796 于 2011-4-29 11:22 编辑 ]…

查看全部问答>

NEC研制新电池厚度仅0.3毫米

对很多人来说,有机游离基电池可能是个很陌生的名字。有机游离基电池由NEC所开发,和传统的锂电池比起来,有机游离基电池能做到更轻,更薄,更柔软,并且有高输出以及快速充电等特性。而现在,游离基电池的研究到达了一个新的高度:NEC研制出了厚度 ...…

查看全部问答>

Atmaga16学习板上有自带的东西(是二级管吗)来做流水灯吗

Atmaga16学习板上有自带的东西(是二级管吗)来做流水灯吗…

查看全部问答>

2015电子大赛控制类题目预测

欢迎大家一起讨论一下控制类题目的预测 …

查看全部问答>

關於MSP430F2553的IO控制

您好 现在要把2553写成UART to SPI(slave)的一个转换程式,但却碰到了一个问题。 SPI Master端也是用 2553完成的。 状况是Slave端的2553一直没办法读到Master发送过来的SPI data,读出的值都为0x00。 经过一些测试后,发现在slave端读取的SPI m ...…

查看全部问答>

求一款音频切换芯片

前面用过一款音频切换芯片(HEF4051BT)是一款八选一音频选择芯片(但是只能切换单声道音频),现在想找一款都能切换左右声道的的音频切换芯片,希望大家能给点建议。谢谢 …

查看全部问答>