新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CAN總線技術在車站信號系統中的應用

        基于CAN總線技術在車站信號系統中的應用

        作者: 時間:2013-09-06 來源:網絡 收藏


          在性能方面,除了SJAl000在軟件和引腳上與它的前—款PCA82C200獨立CAN控制器兼容之外,其還增加了很多新的功能。在具體應用中,SJAl000采用了兩種工作方式:Basic CAN方式(PCA82C200兼容方式)和PeliCAN方式(擴展特性方式),這是SJAl000實現其兼容性的基礎。SJAl000的兩種工作方式是通過時鐘分頻寄存器中的CAN方式位來選擇的,其中上電復位的默認工作方式是Basic CAN方式。在PeliCAN方式下,SJAl000有一個重新設計的含很多新功能的寄存器組。SJAl000包含PCA82C200中的所有位,同時增加了一些新的功能位。PeliCAN方式支持CAN2.0B協議規定的所有功能(29位的標識符)[2]。

          3、SAJ1000與Atmega128單片機接口技術的實現

          在SJA1000的主要特性介紹中,提到其支持多種微處理器接口,在具體設計中,我們主要研究了其與Atmega 128單片機的接口,設計了用于CAN通信的最小單片機系統(以下簡稱CAN通信系統)接口方式如圖3所示。系統的通信部分主要有Atmega 128單片機、SJA1000CAN控制器、光電隔離部分和收發芯片組成。

          TJA1050是PHILIPS公司生產的、用以替代82C250的高速CAN總線驅動器,是CAN控制器和物理總線之間的接口,可以提供向總線的差動發送能力和對CAN控制器的差動接收能力,其與ISO/DIS 11898標準完全兼容[3]。


          光電隔離部分是為了增強CAN總線節點的抗干擾能力,不過,應該特別說明的一點是,光電耦合部分電路所采用的兩個電源必須完全隔離,否則采用光電耦合也就失去了意義。電源的完全隔離采用小功率電源隔離模塊實現。這部分雖然增加了接口電路的復雜性,但是卻提高了節點的穩定性和安全性。

          4、CAN結點通信軟件的設計

          SJA1000是I/O設備基于內存編址的微控制器,雙設備獨立操作通過像RAM一樣的片內寄存器修正來實現。因此CAN總線通信部分編程主要就是對SJAl000的片內寄存器的讀寫操作。通信部分軟件設計總體上可以劃分為3大模塊:總線初始化、數據幀的接收和發送、總線出錯和異常處理。

          4.1 CAN通信初始化

          其主要是設置CAN的通信參數。需要初始化的寄存器有:總線定時寄存器0、總線定時寄存器1、輸出控制寄存器、接收代碼寄存器、接收屏蔽寄存器等等。需要注意的是,只有當控制寄存器中的復位要求位置為高時,這些寄存器才可被訪問。因此,在對這些寄存器初始化前,必須確保系統進入了復位狀態。在訪問總線定時寄存器時,由于其內容決定波特率的數值,總線定時寄存器的初始化字必須依據系統中各CAN控制器的晶振頻率而設定。初始化程序的流程圖如圖4所示[4]。


          4.2 數據發送和接收程序

          信息從CAN控制器發送到CAN總線是由CAN控制器自動完成的。發送程序只需把發送的信息幀送到CAN的發送緩沖區,啟動發送命令即可。需要注意的是,發送中斷不是由于發送完成而產生,而是由于發送緩沖區再次可用而產生的。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 乌拉特中旗| 缙云县| 吉林市| 牟定县| 杂多县| 寿阳县| 长岛县| 手机| 河津市| 乌拉特后旗| 思南县| 淳化县| 岑巩县| 嵩明县| 瓮安县| 永宁县| 阳高县| 浮梁县| 高淳县| 荆门市| 当涂县| 图们市| 万安县| 泗洪县| 五大连池市| 临安市| 乐都县| 江山市| 弥勒县| 延寿县| 独山县| 临沂市| 定边县| 铜山县| 黄石市| 新宁县| 兴山县| 永兴县| 璧山县| 剑河县| 开江县|