新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DSP的PCI總線CAN適配器設計

        基于DSP的PCI總線CAN適配器設計

        作者:關洪亮,張金柱,杜東禮 時間:2008-11-13 來源:現代電子技術 收藏

        1 引 言

        本文引用地址:http://www.104case.com/article/89470.htm

          CAN總線是一種開放式、數字化、多點通信的串行總線,是一種具有較高性價比、能滿足分布式控制要求的現場總線,在控制領域得到廣泛采用。CAN的速率可達到1 Mb/s/40 M,最大傳輸距離可達10 km/5 kb/s。為了擴展CAN總線的監控、管理功能,需要一種實時、可靠的CAN總線PC適配器,實現對CAN總線監視、控制和操作。本文利用TMS320LF2407芯片自帶CAN模塊,設計成CAN的一個特殊節點。使其即能通過PCI接口同PC機進行數據交換,又能獨立與PC機自主運行。

        2 適配器的硬件設計

        2.1 CAN接口實現

          以往CAN總線適配器多數采用Intel82527、Philips公司的SJA100等芯片來完成CAN通信控制。本文利用TMS320LF2407內嵌的CAN模塊作為CAN通訊控制器,該模塊是一個16位的外設模塊。他完全支持CAN 2.0B協議,可工作在標準模式和擴展模式,支持數據幀和遠程幀,數據收發采用郵箱方式;有可編程位定時器,可對中斷配置編程,可編程實現總線喚醒功能;能自動回復遠程請求,有完備的錯誤診斷功能;可進行自測試,有自動收發功能。PCA82C250是驅動CAN控制器和物理總線間的接口芯片,與2407的CAN模塊相連,完成對CAN總線的差動發送和接收功能。

        2.2 PCI接口實現

          采用H.X公司的PCI9052實現PCI總線接口功能,PCI9052可與多種局部總線相連接,并且可支持相對慢的局部總線,在PCI總線上達到突發傳輸速率132 m/s。PCI9052擁有讀寫FIFO,32位的字寬,33 M的PCI總線時鐘頻率。主要功能與特性如下:

          (1)符合PCI2.1規范的目標,接口芯片支持低成本從屬適配器;

          (2)支持非復用或多路復用8位、16位、32位局部總線;

          (3)串行E2PROM用于裝載配置信息;

          (4)具有5個局部地址空間和4個局部地址空間的片選信號;

          (5)支持局域總線與PCI時鐘的異步運行。

        2.3 總體設計思想

          適配器采用存儲器共享的方式實現與PC的數據交換。其中共享存儲器選用集成雙口RAM IDT7130。IDT7130容量為1 kb,其左口連接DSP2407,右口連接PCI9052,使用存儲器尋址方式。同時,對IDT7130 2個端口的仲裁采用的是中斷線的方式。片上的DSP和PC機通過互發中斷來讀取IDT7130的數據。這樣使IDT7130成為上位機和DSP的數據交換中介,DSP能夠實時處理從上位機傳來的命令和數據,同時把各個CAN節點的信息傳給上位機。利用一塊串行E2PROM(93CA6B)存放適配器的PCI配置信息。上電后訪問93C46B,實現本適配器的自動配置。Altera公司的EPM7064S完成地址譯碼和邏輯控制。適配器原理圖如圖1所示:

         

        2.4 電源、地及噪聲的處理

          在本設計中對電源的處理首先將模擬部分的電源和數字電路部分的電源進行隔離,即分別供電。模擬電路部分的5 V電源分別取自PCI總線上的12 V電源,經線性穩壓后,再經去耦、濾波后引至專門設計的模擬電源平面。數字部分的5 V電源直接取自PCI總線上的5 V電源。數字部分的3.3 V電源亦取自PCI總線上的5 V電源,經穩壓后得到。在PCB的層結構設計中也充分考慮到盡可能地保留完整、大而積的電源平面層。適配器的“地”事實上分為模擬地和數字地2部分。這2部分最終在電源平面入口處相連。使得模擬地相對干凈。從而減少疊加到信號上的噪聲,有利于提高信噪比。

        3 適配器的硬件設計

          適配器的硬件設計主要包括2部分:PCI適配器驅動軟件部分和DSP數據采集處理軟件部分。

        3.1 PCI適配器驅動程序設計

          由于PCI設備的中斷,1/0端口、映射內存等資源都是動態分配的,必須編寫驅動程序管理硬件,才能供用戶編程使用。考慮到適配器的通用性和兼容性,驅動程序的開發采用支持Windows XP,Windows 2000,Windows 98的WDM驅動程序。開發工具采用Visual C++6.0。WDM(WindowsDriver Model)是NT4.0內核模式設備驅動程序模型的擴展形式,是為基于Windows 2000的設備驅動程序提供的一種新的開發模型。本設計使用開發工具WINDRIVER大大簡化驅動程序的開發。通過DiverWizard開發者很容易生成驅動程序框架,同時,WINDRIVER和VC有很好的接口。生成驅動框架后在VC中就可以通過在工程項目中加入9052_lib.c,在應用程序開頭直接引用#include"9052lib.h",并0添加特定的驅動代碼完成驅動程序的編寫。下面是驅動程序主函數的部分代碼:

         

        3.2 PCI適配器驅動程序設計

          固化在DSP中的應用軟件是整個系統實時運行的支撐軟件。主體程序采用ASIC C語言編寫。他主要完成以下功能:

          (1)環境初始化;

          (2)從CAN總線接受數據;

          (3)從RAM中讀數;

          (4)系統的控制程序;

          (5)向CAN總線發送任務包;

          (6)向PC上傳數據。

          系統的控制程序根據用戶系統的需求自主來開發。由于DSP20417是16位單片機有較強的運算能力和實時控制功能。他要處理所有的CAN數據包的解釋,而且能夠滿足分布實時控制的現場總線要求。在實際調試中發現下層的控制器向PC機的傳遞數據量遠大于PC機下傳的數據量,因此在數據編碼時將控制信息、采樣數據編號信息和控制量、采集量均加載在數據字節里。由此CAN總線通訊協議的形式為:“ID號+數據+校驗”,其中ID號為各DSP采集器編號采用11位標識符的前4位。為了保證通訊的可靠性,在數據接受后,都由一個返回幀,以表示確認,其校驗位為發送端的固定代碼。DSP上傳實時采集數據的發送采用定時查詢的方式,查詢采樣是否結束并且進行了相應的數據處理后,立即將數據通過CAN控制裝載并發送到CAN總線上。基本流程如圖2所示。

         

        4 應用實例

          應用該CAN通訊適配器對實驗室3臺交流異步電機進行監控。系統構成原理如圖3所示。在通信時,CAN總線設為多主結構。PCICAN轉換卡地址是1,電機A、電機B、電機C的地址分別為2,3,4。變頻器控制電機A以v0速度左右10%的額定轉速范圍內線性變化,同時CAN收發器1發送電機A轉速的數字量至CAN卡。CAN卡同步實時發送信號至CAN收發器2,3,調節電機B,C使其分別以速度1.1v0,1.2V0工作。CAN卡同時分別采集每個電機速度發送至PC機,以便人機監控調整。系統的人機界而是基于Windows平臺用VC”6.0語言開發,DSP內部程序用ASIC C語言編寫,實際運行控制結果表明該系統工作可靠、電機調節響應速度快。

         

        5 結語

          本文設計的CAN總線適配器實用性強,并具有良好的可擴展性。在WIN2000系統下經過長時間的運行測試,運行穩定可靠。他可以適應不同的傳輸速率和距離,有效保證工業控制系統的實時性。DSP芯片一方面對CAN總線各控制節點的參數進行高速運算處理,另一方面通過PCI總線進行人機數據交互,起封一種CAN總線中主控節點的作用。



        關鍵詞: DSP

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 合作市| 遂宁市| 柳江县| 昭平县| 秦皇岛市| 芒康县| 田阳县| 凯里市| 青河县| 丰都县| 合川市| 江孜县| 休宁县| 高邮市| 云林县| 吉安市| 香港 | 黎城县| 醴陵市| 塔河县| 康保县| 中山市| 闸北区| 衡山县| 台湾省| 塔河县| 鹤峰县| 额尔古纳市| 永寿县| 永宁县| 南投市| 吉林省| 嫩江县| 漳浦县| 安龙县| 平果县| 临颍县| 方山县| 凤山市| 湄潭县| 正阳县|