7仲裁:只要总线空闲,任何单元都可以开始发送报文。如果两个或者两个以上的单元同时开始传送报文,那么就会有总线访问冲突。通过使用了标识符的逐位仲裁可以解决这个冲突。仲裁的机制确保了报文和时间均不损失。当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先于远程帧。在仲裁期间,每个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送。如果发送的是一“隐性”电平而监视到的是“显性” 电平(见总线值),那么这个单元就是去了仲裁,必须退出发送状态。
8安全性:为了获得最安全的数据发送,CAN的每一个节点均采取了强有力的措施来进行错误检测,错误标定及错误自检。
9错误检测:要进行检测错误,必须采取以下措施:
_ 监视(发送器对发送位的电平与被监控的总线电平进行比较);
_ 循环冗余检查;
_ 位填充;
_ 报文格式检查;
错误检测的执行:错误检测的机制具有以下属性。
_ 检测到所有的安全错误;
_ 检测到发送器所有的局部错误;
_ 可以检测到报文里多达15个任意分布的错误;
_ 检测到报文里长度低于15(位)的突发性错误;
_ 检测到报文里任意奇数个错误;
对未能检测到的错误报文,其遗漏错误的概率低于:
报文错误率×4.7×10-11
10错误标定和回复时间:任何检测到错误的节点会标志出损坏的报文。此报文会失效并将自动重新发送。如果不再出现错误,那么从检测到错误到下一报文的传送开始为止,回复时间最多为31个位的时间。
11故障界定:CAN节点能够把永久的故障和短暂的干扰区别开来。故障的节点会被关闭。
12连接:CAN串行通信链路是可以连接许多单元的总线。理论上,可以连接无数个单元。但实际上由于受延迟时间以及总线线路上电气负载能力的影响,连接单元的数量是有限的。
13单一通道:总线由单一通道组成,它传输位流。从传输的数据中可以获得再同步信息。本技术规范没有规定通道实现通信的方法。例如:可以使用单芯线(加地线),两条差分线,光缆等。
14总线值的表示:总线上可以有两个互补的逻辑值中的一个:“显性”或者“隐性”。当显性位和隐性位同时传送时,其结果是总线值为显性。
15应答:所有的接收器对接收到的报文进行一致性检查。对于一致的报文,接收器给予应答;对于不一致的报文,接收器做出标志。
16睡眠模式/唤醒:为了减少系统电源的功率消耗,可以将CAN器件设为睡眠模式来停止内部活动并断开与总线驱动器的连接。睡眠模式可以由于任何总线的运作或系统内部条件而结束。唤醒时,在总线驱动器被重新设置为“接通总线” 之前,内部运行就已重新开始。然而MAC子层要等待系统的振荡器工作稳定后,还要等待到与总线活动同步(通过检查11个连续的隐性位)。17振荡器误差:位定时的精度要求允许在传输率为125 kbps以内的应用中使用陶瓷谐振器。为了满足CAN协议的整个总线速度范围,需要使用晶体振荡器。【12】
2.3 C8051F040单片机简介
Silicon Laboratories公司出品的C8051F04X系列单片机是完全集成的混合信号系统级芯片(SOC),具有MSC-51完全兼容的指令内核;然而C8051F04X系列单片机在系统构架,外围设备等方面都有了很大的改进,使得运行速度更快,集成度更高。由于该系列单片机采用最新的流水线处理技术,不再区分时钟周期和机器周期,能在执行指令的同时处理下一条指令,因此大部分指令在一个机器周期就可以完成,使得在相同的晶振频率下执行速度有了很大的提高。 C8051F040是该系列单片机中功能最全的一款单片机,其上有多种I/O接口,有多路A/D转换接口,因此智能节点采用C8051F040作为中央处理器。不仅能完成各种传感器信号的采集,也能保证系统的通讯要求。 CAN总线家庭火灾探测与报警系统软件设计(6):http://www.751com.cn/zidonghua/lunwen_4968.html