求助!!! 点击:634 | 回复:1



prettylele

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 0回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2003年3月10日
发表于:2003-03-11 09:00:00
楼主
我想知道: dsp28系列的CAN总线通信过程中 数据从数据库中出来一直到发送完成数据的打包和传输过程



gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-03-11 09:00:00
1楼
以下供参考: CAN总线初始化设计 要使SJA1000正常工作,必须先对其作初始化,这是一个重点。对SJA1000的操作是由读写其片内的控制寄存器实现的。待SJA1000硬件复位完成后,单片机就可以初始化SJA1000,初始化程序如下: INITISJA1000: RESET: CONFIG: OPERATE_MODE: CONFIG1: CLR EX0 ;关中断 MOV DPTR , #0000H MOV A , #01H MOVX @DPTR , A ;设置复位请求标志 MOV A , #40H MOV DPTR , #001FH MOVX @DPTR , A ;CDR=40H MOV A , #13H MOV DPTR , #0004H MOVX @DPTR , A ;设ACR接受代码=13H MOV A , #00H MOV DPTR , #0005H MOVX @DPTR , A ;接受屏蔽寄存器(AMR)=00H MOV A , #01H MOV DPTR , #0006H MOVX @DPTR , A ; BTR0=01H MOV A , #1CH MOV DPTR , #0007H MOVX @DPTR , A ; BTR1=1CH MOV A , #1AH MOV DPTR , #0008H MOVX @DPTR , A ; OCR=1AH MOV A , #00001100B MOV DPTR , #0001H MOVX @DPTR , A ; GTS=0, CDO=1, RRB=1 MOV DPTR , #0000H MOV A , #00011010B MOVX @DPTR , A ;进入工作模式 SETB EX0 ;开中断 RET 这里SJA1000的首地址是0000H。只有SJA1000进入复位工作模式,才可以初始化相应的寄存器。时钟分频寄存器(CDR)设定值为40H,表示选BasicCAN工作模式,忽略CAN输入比较器和不用TX1输出做专用接收中断输出。接收代码寄存器(ACR)和接收屏蔽寄存器(AMR)组成接收过滤器,接收代码位(AC.7-AC.0),接收屏蔽位(AM.7-AM.0)和信息识别码的八位(ID.10-ID.3)满足下述方程,该信息才会被接收: [(ID.10-ID.3)≡(AC.7-AC.0)] ∨(AM.7-AM.0)≡11111111 总线时序寄存器0(BTR0)可决定波特率预置值和同步跳转宽度的值,BTR0=01H表示波特率设为250Kbps(用16M晶振)。总线时序寄存器1(BTR1)决定位周期宽度,采样点位置和在每个采样点的采样次数。系统中各节点的BTR0、BTR1应设为相同,否则不能互相通信。输出控制寄存器OCR决定了不同输出驱动配置的建立。设置完这些寄存器后,要将SJA1000设为正常工作模式,并按需要使能其相应的中断位。SJA1000中各控制寄存器的详细说明和用法可参考文献1。

热门招聘
相关主题

官方公众号

智造工程师