最近在做一种车载的仪表显示,使用CAN总线连接整车控制器和显示仪表。我做的部分就是仪表部分,因为使用到CAN通讯,所以就使用了ATMEL的AT89C51CC01带CAN控制器的芯片。液晶显示使用JM12864M,其控制驱动器是ST7920的。应该说是比较简单的系统了,但是在实际调试中却产生了问题,具体如下: 1)使用UCAN工具发送单帧数据,总线速率250KBPS,帧发送间隔50MS以上时,显示正常,偶尔(长时间运行,24小时以上)会发现LCD显示数据有窜行的现象,具体就是,第一行的第一个字,跑到第三行的最后一个字的位置,第二行的第一个字跑到第四行的最后一个字位置。其他字符依次前移?? 2)连接到实际车载网络时,发生频率大大增加,几乎到了5到10分钟就会发生的地步(此时CAN总线上跑的CAN帧数量激增,种类繁多)。进行CAN帧过滤,只收取关心的报文,发生频次显著降低。后来不得已,使用定时器定期重写LCD显示数据。但还是偶尔发生。 感觉问题没有最终解决,可是不明白为什么? 对了,LCD使用的时SPI方式连接,CAN报文使用接收中断接受,在写LCD时关闭所有中断了。 请坛子里的朋友帮忙看看有什么问题呢?? |