• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > CAN控制器在深海測控中的應用

    CAN控制器在深海測控中的應用

    作者: 時間:2012-06-25 來源:網絡 收藏

      VDD1和VSS1:邏輯電路5V電源和邏輯電路地。

      XTAL:晶體振蕩器放大器輸入,外部晶體振蕩器信號由該腳輸入。

      XTAL2:晶體振蕩器放大器輸出,當使用外部晶體振蕩器信號時,該輸出引腳必須開路。

      VDD3和VSS3:輸出驅動5V電源和輸出驅動地。

      TX0和TX1:CAN輸出驅動器0和1輸出到物理總線。

      INT:中斷輸出,用于觸發微中斷;內部中斷寄存器的任何位置位,INT將低電平輸出;INT為開環輸出;該引腳為低電平將電路從睡眠狀態激活。

      RST:復位輸入,用于復位CAN接口(低電平有效)。

      VDD2和VSS2:輸入比較器5V電源和輸入比較器地。

      RX0和RX1:從物理CAN總線輸入到的輸入比較器。

      與微處理器的接口非常簡單,微處理器以訪問外部存儲器的方式來訪問。由于SJA1000的內部寄存器分布在連續的地址內,所以完全可以把SJA1000當作外部RAM。在設計接口電路時,SJA1000的片選地址應與其他外部存儲器的片選在邏輯上無沖突。

    3系統設計

      SJA1000型CAN兼容CAN2.0A和CAN2.0B二種規范。CAN2.0B具有二種不同的幀格式:標準幀和擴展幀,前者為11位標識符,后者為29位標識符。前者的標識符比后者的標識符少2個字節。系統的CAN節點數量少,只有上位機節點和水下中心節點,所以即使距離比較遠,對傳輸數據速度和可靠性的影響也不是很大。

      3.1單片機與CAN的硬件設計

      圖2為C8051F020型單片機與SJA1000型控制器的硬件連接電路原理。SJA1000占用了0x8000-0x80FF的外部RAM空間。當單片機訪問以上空間時片選信號會選中SJA1000。

      C8051F020有高低2個外部存儲器接口。因此,SJA1000的AD0-AD7連接到C8051F020的高端口P7口,CS連接到基址為0x8000的外部存儲器片選信號。當C8051F020訪問地址0x8000-0x80FF時,CPU可對SJA1000執行相應的讀/寫操作。SJA1000的RD、WR和ALE分別與C8051F020的對應引腳相連,INT接C8051F020的INT0引腳,于是C8051F020可通過中斷方式訪問SJA1000。SJA1000的復位信號RST為低電平有效。C8051F020的AD0-AD7口用于地址/數據的輸入/輸出,將其配置為漏極開路方式,利用4.7kΩ上拉電阻器拉至5V。通過設置數字交叉開關,將C8051F020的外部中斷引腳配置到P2.7口。

      CAN能夠使用多種物理介質,例如雙絞線和光纖等。該設計方案采用雙絞線。信號以差分電壓傳送,2條信號線為CAN_H和CAN_L,靜態時為2.5V,此時狀態表示邏輯"1",也叫做"隱性"。CAN_H比CAN_L高,表示邏輯"0",稱為"顯性",此時CAN_H=3.5V,CAN_L=1.5V。TJA1050型CAN總線收發器是CAN協議控制器和物理總線之間的接口,CAN總線上二端節點須加60Ω電阻器和47nF電容器將信號吸收,以避免信號反射。為了增強CAN總線節點的抗干擾能力,SJA1000的TX1與RX1通過6N137型高速光耦后與TJA1050相連。這樣就很好地實現了總線上各CAN節點間的電氣隔離。其中,光耦部分電路的2個電源VCC和V_CAN必須完全隔離,否則采用光耦就是失去了意義。電源的完全隔離可采用小功率電源隔離模塊和通過帶多個5V隔離輸出的開關電源模塊實現。

      3.2軟件設計

      通信協議采用"ID+命令+數據+校驗"的形式,其中ID為網絡設備的標識符,采用ID.18-ID.20。標識符ID.21-ID.28作為固定命令,不參與驗收濾波。數據表示通信的具體內容。校驗為1個字節,采用校驗和的形式,由于CAN總線本身具有15位CRC校驗,并且該系統節點數少,競爭不會很激烈,通信可靠性比較高。

      軟件設計思想為系統上電后C8051F020先對自身和SJA1000進行初始化以確定工作主頻、波特率和輸出特性等,然后接收來自甲板上位機的控制命令,同時將獲取的采樣參數通過SJA1000傳送到CAN總線上或備份到Flash存儲器中;對SJA1000的初始化設計是重點,也是難點,必須對寫入每個寄存器的內容進行仔細和全面考慮,否則系統將無法正常運行。可設上位機SJA1000適配卡的ACR為xx20,AMR為FF00。水下中心SJA1000的ACR為xx40,AMR為FF00。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 醴陵市| 行唐县| 栾川县| 杂多县| 潜江市| 华亭县| 东兰县| 多伦县| 合肥市| 蓬莱市| 达日县| 青州市| 赣州市| 南木林县| 牙克石市| 大同县| 精河县| 巴楚县| 三都| 儋州市| 腾冲县| 临沭县| 玛沁县| 两当县| 襄樊市| 闽清县| 津市市| 沭阳县| 东方市| 北辰区| 锡林郭勒盟| 卓尼县| 宝坻区| 丰宁| 上饶市| 呼图壁县| 阳谷县| 长兴县| 星座| 东阳市| 高邮市|