新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CAN總線的87C196CA在單片機(jī)串行通訊的應(yīng)用

基于CAN總線的87C196CA在單片機(jī)串行通訊的應(yīng)用

作者: 時(shí)間:2012-05-22 來(lái)源:網(wǎng)絡(luò) 收藏

3 通訊軟件

  對(duì)于通過(guò)CAN 總線連接的單片機(jī)之間的通訊軟件編程需要定義一系列的控制字,并在兩個(gè)單片機(jī)上進(jìn)行配置。即首先進(jìn)行上電初始化,定義CAN控制寄存器,定義位定時(shí)寄存器選擇CAN 的通訊速率,定義信息體屏蔽寄存器選擇接收對(duì)象。其次對(duì)信息體進(jìn)行初始化,分別定義兩個(gè)信息體工作模式、發(fā)送字節(jié)數(shù)、選擇CAN2.0A 或CAN2.0B 方式。其程序代碼:

  / *CAN 控制器初始化*/

  can_con = 0x41 ; / *CAN 控制器CCE 位置1 ,

  則可以定義CAN 定器* /

  can_ btime0 = 0x41 ; /* 定義CAN 定時(shí)器為

  250 Kb/ s * /

  can_btime1 = 0x67 ;

  can_con = 01 ; / *允許對(duì)CAN 控制器進(jìn)行軟

  件初始化* /

  can_sgmsk = 0x0 ; / * 定義標(biāo)準(zhǔn)CAN 通訊格

  式的屏蔽控制字,所有位都不濾紙*/

  can_msg1con0 = 0x55 ; / * 信息體1 控制器0

  初始化* /

  can_msg1con1 = 0x55 ; / * 信息體1 控制器1

  初始化* /

  can_msg1cfg = 0x88 ; / *定義信息體1 為發(fā)

  送,發(fā)送8 字節(jié),標(biāo)準(zhǔn)CAN 格式* /

  can_msg1id = 0xc8c8c8c8 ; / * 信息體1 標(biāo)識(shí)

  寄存器初始化標(biāo)識(shí)符為c8c8c8c8 ;

  can_ msg1con0 = ox95 ; / * 信息體1 控制器

  0MSGVAL 位置1 ,標(biāo)明信息體1 有效* /

  can_msg2con0 = 0x55 ; / * 信息體2 控制器0

  初始化* /

  can_msg2con1 = 0x55 ; / *信息體2 控制器1

  初始化* /

  can_msg2cfg = 0x80 ; / *定義信息體2 為接

  收,接收8 字節(jié),標(biāo)準(zhǔn)CAN 格式* /

  can_msg2id = 0xc8c8c8c8 ; / *信息體2 標(biāo)識(shí)

  寄存器初始化標(biāo)識(shí)符為c8c8c8c8 */

  can_ msg2con0 = ox95 ; / * 信息體2 控制器

  0MSGVAL 位置1 ,標(biāo)明信息體2 有效 */

  can_con = 0x02 ; / * CAN 控制器軟件初始化

  完成*/

  / *發(fā)送8 字節(jié)數(shù)據(jù): * /

  can_msg1con1 = 0x5a ; / * CPUUPD 置1 ,使

  軟件刷新數(shù)據(jù),NEWDA T 置1 使信息置1 使信息

  體有效* /



關(guān)鍵詞: CAN總線 87C196CA 串行通訊

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉