当前位置:首页 > 基于CAN总线多路数据采集器
题目:基于CAN总线多路数据采集器
一 、设计任务要求
(1):CPU选用89c51,控制器SJA1000, 收发器自选。 (2):能实现8路标准电压信号(0~5V)的采集。 (3):系统参数要求:
参数 位速率 CAN控制器的振荡频率 振荡器容差 收发器的有效延迟 逻辑的循环延迟 总线延迟 最小值 30ns 15ns 20ns 额定值 250Kbps 75ns 最大值 16MHz 1.0% 157ns 40ns 325ns 给出总线定时器参数
(4)节点采用PeliCAN模式,标准帧格式。携带电压信号的帧的格式为:
信息功能码(2位) 节点号(4位) 电压分支编号(3位) 数据场格式(2位)
1 1 X X X X X X X 10
对于任一节点,节点号是固定的。假设节点仅能接受数据请求的远程帧。从而发送相应数据。滤波方式为单滤波。设置相应滤波器参数(写明过程)。
(5):给出硬件设计原理图电路(在PROTEL上完成发原理图即可) (6)结合硬件,给出CAN的初始化程序。给出整个采样系统的主程序流程图,及主要的子程序流程图。
二、硬件设计 计算位定时参数
参数 位速率 CAN控制器的振荡频率 振荡器容差 收发器的有效延迟 逻辑的循环延迟 总线延迟 最小值 30ns 15ns 20ns 额定值 250Kbps 75ns 最大值 16MHz 1.0% 157ns 40ns 325ns 确定位定时参数:
第一步:确定BRP、NBT、一个时间份额的持续时间tSCL和PROP
解得BRPmin?NBTmin?32
tprop.max?2(157?40?325)?1044ns?1.044us
第二步 选择适当的NBT 、PROP 和BRP 组合
fCLK BRP 2 4 NBT 16 8 tSCL PROP 4.176 2.088 16MHz 0.25us 0.5us
8 16 4 2 1us 2us 1.044 0.522 振荡容差为1.0%时,最小NBT=6,PROP>2,所以只有2、 16 和 4 、8 组合能用。2、 16 组合中时间份额tSCL太小,因此选择BRP=4,NBT=8。
第三步:确定位速率和传播延迟之间的折衷方案,选择合适的采样点位置并计算位定时参数
采用单次采样,由下表带入数据可得可知 SJW可取 3、 4;因此可得TSEG2只能取3,所以SJW=3,TSEG2=3。
因为NBT=TSEG1+TSEG2+SYNC(同步跳转宽度) 取SYNC=1,得TSEG1=8-3-1=4 综上:
fclk BRP NBT PROP SJW TSEG2 TSEG1 16MHz 4 8 2.088 3 3 4
所以BTR0=43H
SJW.1 SJW.0 BRP.5 BRP.4 BRP.3 BRP.2 BRP.1 BRP.0 0 1 0 0 0 0 1 1
BTR1=23H
SAM 0
TSEG2.2 TSEG2.1 TSEG2.0 TSEG1.3 TSEG1.2 TSEG1.1 TSEG1.0 0 1 0 0 0 1 1 确定其他寄存器
验收屏蔽寄存器相应位置“1”时,对应的报文位不须要经过验收代码寄存器验收滤波。
验收屏蔽寄存器相应位置“0”时,对应得报文位须要经验收代码寄存器验收滤波。
CDR CAN模式 CBP 1 MOD - 0 OCR OCP1 1 RXINTEN 0 0 0 CLOCKOFF 1 CD.2 0 CD.1 0 CD.0 0 - 0 - 0 SM 0 AFM 1 STM 0 LOM 0 RM 0 OCTN1 OCPOL1 0 OCTP0 OCTN0 OCPOL0 0 0 0 TX1悬空 1 1 TX0推挽 OCMODEOCMODE1 0 1 0 正常输出模式 IER清零。
共分享92篇相关文档