发表于:2003-05-07 11:38:00
68楼
我在做一个毕业设计,有点问题想问各位CAN高手:
系统为:89C51+82C200+82C250,其中89C51的INT0脚与82C200的INT脚相连,
89C51用中断方式响应进行接收,82C200初始化为:所有中断位均开放。
我的问题是:
1、82C200有两个接收缓冲器(0和1),在初始化后接收到第一帧数据A,
那么是保存到缓冲器0中吗?中断寄存器IR中的IR.0应是1吧(接收中断
位置位)?同时在INT管脚是不是给出一个下降沿脉冲?
2、此时89C51响应中断而读取缓冲器0中的数据,如果在读取没有完成之
前,总线上又有新的一帧数据B到来,且符合接收条件,这时82C200应该
是将新的数据保存到缓冲器1中吗?并且IR.3=1(超载中断位置位)吧?同
时会在INT管脚输出一个下降沿脉冲吗?
3、如果89C51在响应第一个CAN中断后没有关闭INT0中断,则将会响应第二
个中断而进入了中断嵌套,此时如果访问82C200的接收缓冲器,则访问的
是缓冲器0还是缓冲器1呢,读取到的是数据A还是数据B呢?当第二次中断
进行完后,由于中断嵌套而被打断了的第一次中断继续执行时,继续访问的
又将是哪一个缓冲器,读取到的是哪一个数据?
4、如果89C51在响应第一个CAN中断后先关闭了INT0中断(直到中断返回前
才开放),此时继续访问的是哪一个缓冲器,读取到的是哪一个数据?对于
第二次中断,单片机如何进行响应,是不是无法响应了?这样的话,数据B
是不是无法接收到?即是不是在响应中断的时候不应该关闭INT0中断呢?
恳请高手解答!!!!万分感谢!!