CAN2w_InitStructure.CAN_NART=DISABLE;///!!! /
//NART(No automatic retransmission)报文自动重传功能
//=ENABLE;禁止报文自动重传,=DISABLE,发送失败,会自动重传,直到成功 !!!!!!!!!
//DISABLE代表的是使用自动重传的功能,ENABLE是代表不使用自动重传的功能
//发现在不使用自动重传的功能时,如果由于总线竞争导致发送失败,数据就丢掉了。
//所以在不是一应一答的环境中使用CAN的时候,建议开启自动重传功能。
CAN节点在发送数据时会同时侦听总线的信息,如 侦听总线的信息头包与 发送数据一样,就继续发送数据,
否则就等待下次再发;
下图为1个大型电厂的温度采集系统,分2路CANWeb总线,每路带62个8路热电偶CNW_IO模块,共992个温度采集点,项目使用4片GD32F427VE、124片GD32F305RC芯片, 采集系统CAN总线冗余,基本不丢包;

CAN总线价格便宜,抗干扰、实时性好,但开发编程复杂,需对CAN包拆包、并包,对Id的过滤进行设置,并需对通信总线的负载、丢包(通信质量)进行监视管理,以及考虑怎样快速与用户的控制器(DCS、PLC、计算机等)交换数据及方便监控调试总线节点的参数,能封装这些功能的的CAN总线的高层协议是现场总线,如CANWeb、CANOpen、DeviceNet、J1939、ISO11783、CANKingdom、SDS、iCAN等CAN高层协议。
详细见:
https://bbs.21ic.com/icview-3335470-1-1.html
|