新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > CAN總線在程控交換機中的應用設計

        CAN總線在程控交換機中的應用設計

        ——
        作者: 時間:2007-11-20 來源:電子工程師 收藏

          在電話中,控制系統由前端處理、主控制和維護管理三級處理系統構成。

          主控制機與前端處理機之間有通信處理機,它主要完成通信功能,將從各從節點傳來的信息整理打包傳往主控單元,并將從主控單元發送來的命令分配發往各從節點。其中,前端處理機與主控機連接的電路結構如圖1所示。

          主控制機與6個通信處理機之間通過雙口RAM,以中斷方式傳送數據,每個通信處理機與前端處理機都采用具有HDLC協議的8044芯片,各前端機不能主動發起與通信控制機的通信,必須等待通信控制機詢問該節點時才能向它發送數據。

          對于圖1的應用,本文采用技術來實現,大大減化了軟硬件設計,降低了成本。

          

        前端處理機與主控機連接的電路結構

          設計關鍵點

          物理層設計

          為了使用的靈活性,沒有嚴格定義物理層的連接和媒質,這雖然使物理層的設計相當靈活,但對CAN總線設計的新手來說,此處也是容易出問題的地方。從應用來看,CAN控制器只引出了TX0、TX1兩個發送輸出端(它們具有互補的電平輸出)和RX0、RX1兩個差分比較輸入端。因此,應用中要根據需要自行設計物理層的連接和總線電平。

          總的原則是:針對TX0、TX1的兩種輸出狀態(顯性、隱性),總線應具有兩種不同的電平,這兩種電平可以使差分輸入的接收端呈現兩種狀態(顯性、隱性)。根據不同的傳輸距離和傳輸速率要求,有著相應的設計方案,本文圖2所示的電路中,CAN總線控制器采用的是SJA1000,物理層驅動采用PCA82C250,通過設置PCA82C250的引腳8(Rs)可以使其分別工作在高速、斜率控制和待機方式下。在斜率控制工作方式下,對于較低速度或較短總線長度的應用場合,可用非屏蔽雙絞線或平行線作總線,為降低射頻干擾,可通過調整引腳8到地的連接電阻大小來實現。為了增加抗干擾能力,圖2電路中在CAN控制器和PCA82C250之間加入了6N137高速光耦。該方案的主要特點是:位速度:0~1Mbit/s;節點數:2~110個。

          

        前端機電路原理圖

          軟件編程

          所有的CAN控制器具有相同的結構和順序,只不過是在存儲器中映象的偏移量不同。圖2所示的電路中,CAN控制器SJA1000寄存器定義在4000H~401DH的范圍之內。CAN總線數據通信的軟件編程通過對30個寄存器的操作來完成,其收發的程序框圖如圖3所示。

          

        收發的程序框圖

          中主控機與前端處理機通信的電路設計

          對于圖1所示的電路,若采用CAN總線通信方式,則省去了通信處理機,硬件結構簡單,且各節點都可以作為主節點發起通信,其電路結構如圖3所示。主控制機由80586和CAN適配器構成,適配器上的8051與80586通過雙口RAM,以內存映射方式交換信息。這里著重介紹前端機部分,前端機主要由8051、SJA1000和PCA82C250等構成,控制譯碼電路由GAL22V10完成。其電路如圖4所示。

          

        利用CAN總線的主控機與前端處理及通信的電路結構

          CAN控制器SJA1000的數據與地址端是時分復用的,其讀寫時序與8051讀寫片外RAM時的操作是兼容的,故其可以與8051直接相連,而不需要加地址鎖存器。

          前端機CAN總線的初使化、發送及接收程序框圖如圖5所示。

          

        前端機CAN總線的初使化程序框圖

          

        前端機CAN總線的發送程序框圖

          

        前端機CAN總線的接收程序框圖


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 金华市| 银川市| 伊通| 平远县| 比如县| 安仁县| 交城县| 肃宁县| 临高县| 房山区| 阳谷县| 瓮安县| 保定市| 三亚市| 思茅市| 墨竹工卡县| 晋州市| 石柱| 乌鲁木齐县| 绍兴市| 葫芦岛市| 宿迁市| 密山市| 囊谦县| 重庆市| 安达市| 康平县| 潞城市| 凤山县| 东丰县| 宾阳县| 朔州市| 石城县| 彭泽县| 叶城县| 包头市| 铁力市| 太湖县| 新乡县| 江孜县| 都安|