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

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CAN總線嵌入式數字控制系統的設計

    基于CAN總線嵌入式數字控制系統的設計

    作者: 時間:2012-12-07 來源:網絡 收藏

    針對技術在數據傳輸中采用短幀結構和過濾機制,本文了直流電機調速控制板與控制板的數據通信,以及與上位機的通信等。

    本文引用地址:http://www.czjhyjcfj.com/article/148214.htm

    0 引言

    目前國內生產的直流電機調速控制器大多都不帶通信接口,即使有帶通信接口也僅為RS232或RS485串行總線。眾所周知RS232和RS485有各自的優缺點,阻礙了多臺電動機機組的進一步網絡化發展和群控控制。本文分析和研究了多臺直流電機CAN總線的通信協議以及軟件數據的傳輸,對工業網絡控制的實現具有一定的指導意義。CAN總線控制網絡工作于多主方式,網絡中的各節點都可根據總線訪問優先權(取決于報文標識符)采用無損結構的逐位仲裁的方式競爭向總線發送數據,且CAN協議廢除了站地址編碼,采用對通信數據進行編碼,這可使不同的節點同時接收到相同的數據,這些特點使得CAN總線構成的網絡各節點之間的數據通信適時性強,并且容易構成冗余結構,提高系統的可靠性和靈活性。

    1 系統總體

    多臺直流電動機CAN總線如圖1所示,本系統由直流電機、直流電機調速控制器、CAN總線通信控制板、上位機和CAN總線五部分構成。CAN總線能完成網絡的建立、網絡信號的傳遞、總線控制以及與上位機之間的數據通信;同時還完成對直流電機電壓、電流數據的測試、傳輸以及直流電機轉矩、轉速的檢測并進行閉環控制等。

    點擊放大圖片

    圖1 多臺電機CAN總線控制框圖

    2 數據通信

    在直流電機調速系統結構中有一個通信接口模塊,用來實現與CAN總線通信控制板之間的數據交換,首先用DSP實現AD采樣電路對速度反饋、速度給定、電流反饋等數據處理。采樣所得數據經再發送給ARM處理器,最終ARM處理器實現CAN總線通信。

    2.1 直流電機的CAN總線通信設計

    CAN協議標準中規定了CAN總線支持的兩種傳輸介質:雙絞線和光纖。目前,絕大多數CAN總線系統采用的都是雙絞線傳輸。光纖一般應用于大容量、高速率的傳輸中,對于CAN總線這種傳輸速率較低、數據量較小的現場總線通信,光纖傳輸的優勢得不到完全發揮。所以,本文使用雙絞線作為通信介質。

    每個直流電機都是網絡中的一個節點,其在運行時的數據經DSP采集后發送到CAN總線通信控制板,然后傳輸到CAN總線上,再由CAN總線適配器傳給上位機,實現對電機的實時監測。這樣就可以實現上位機對電機的實時監控。其中CAN總線適配器實現上位機與CAN總線的數據交換。

    CAN總線適配器由CAN的微控制器完成與上位機通信的協調工作,根據需要可對CAN適配器微控處理器中的寄存器進行讀寫操作,實現初始化及數據采集。CAN總線適配器上電復位和初始化后,等待著命令和數據,當命令或數據送給CAN的寄存器并置位標志位,即完成一次通訊,然后取出數據做進一步處理。與CAN適配器間的通訊有查詢和中斷兩種方式。

    2.2 CAN總線網絡通訊調試

    首先要測試CAN總線適配器與上位機能否實現通信,從前面的介紹可以知道它們是通過串口實現通訊的。打開串口調試工具,由適配器向串口發送數據,如果串口調試工具可以接收到數據,則說明它們之間的通訊正常。接著要對兩個CAN節點的調試,我們采用雙絞線作為通訊介質??偩€傳輸速度與雙絞線的長度成反比關系,所以可以根據對通訊速度的要求確定雙絞線的長度,由于是簡單通訊實驗,因而對雙絞線的長度沒有要求。設置一個節點為發送端,另一節點為接收端,取消報文濾波器,如果能夠完成發送接收任務則它們已經能夠實現簡單的通訊。

    本設計設定傳輸運行狀態與故障狀態兩種運行參數,其中運行狀態包括直流電機的:給定速度、反饋速度、反饋電路、電樞電壓。運行狀態是由DSP自帶的AD轉換模塊經采樣所得。DSP的AD采樣器精度是12位的,所以經模數轉換后的數值是一個12位的二進制數,對其前端補零轉換成16位數據經串口直接發送給ARM處理器。因為兩者的傳輸距離很近,所以不需要經過電平轉換就可直接發送。而電機的故障狀態則由0、1表示,0代表沒有故障,1代表電機出現故障。

    針對CAN總線技術在數據傳輸中采用短幀結構和過濾機制,本文設計了直流電機調速控制板與CAN總線控制板的數據通信,以及CAN總線與上位機的通信等。

    要實現DSP與ARM以及CAN總線的通信,需要設置一個通信控制協議,協議設定每個要傳輸的參數一個控制地址。CAN總線每次可以發送8個字節數據,每個字節8位,所以給定速度、反饋速度、反饋電流及電樞電壓這四組運行參數需要占據兩個字節,而故障狀態只需占據一個字節。CAN總線數據幀的第一個字節存放控制地址,第二、三個字節存放數據。其中,第二字節存高地址,第三字節存低地址。如果發送的是故障狀態則只有第二個字節是傳輸數據。CAN總線每次只發送一種運行參數,其中給定速度、反饋速度、反饋電路及電樞電壓依次輪流發送。而故障狀態在程序中設置為優先級最高,當有故障出現時則優先發送,正常狀態下不發送。圖2是整個系統的數據傳輸流程圖。

    點擊放大圖片

    圖2 數據傳輸流程圖

    3 實驗

    圖3為上位機數據顯示界面,圖中顯示為調試某一時刻的傳輸數據??梢钥闯龇答佀俣扰c給定速度并不相等,由于PI控制算法的作用使反饋速度始終處于給定速度附近。反饋電流1.2A是在電機空載時的測量值,隨著負載的增加,反饋電流會逐漸增大。電樞電壓是直流電機母線上的電壓,由于電機在實際應用中主要工作在220V,所以調試時首先將電樞電壓穩定在這一電壓值,然后再對速度進行調節。在正常情況下,故障狀態始終顯示為“無”,當有故障信號發出時,故障狀態顯示為“有”并發出報警信號。

    點擊放大圖片

    圖3 上位機數據顯示界面

    linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 安达市| 双辽市| 北流市| 平顺县| 华坪县| 包头市| 蛟河市| 高青县| 泰和县| 图木舒克市| 钟山县| 铜川市| 道孚县| 鹿邑县| 霍州市| 乐平市| 和龙市| 台北县| 翁源县| 承德市| 镇平县| 罗甸县| 游戏| 喀什市| 松滋市| 彭州市| 武汉市| 威远县| 贡嘎县| 长沙县| 通州市| 东辽县| 鲁甸县| 鞍山市| 那曲县| 东宁县| 荆门市| 乐山市| 云龙县| 西吉县| 察哈|