新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CAN總線與以太網的嵌入式網關設計

        基于CAN總線與以太網的嵌入式網關設計

        作者: 時間:2009-08-26 來源:網絡 收藏
        PCA82C250是控制器與物理之間的接口,主要用于增強系統的驅動能力。采用收發器的系統中,節點數至少可以達到110個,同時還具有降低射頻干擾(RFI)和很強的抗電磁干擾 (EMI)能力。在處理這部分電路時,有幾個地方要特別注意:
        (1)晶振電路的問題。89C55和SJA1000都應該有各自獨立的晶振電路,不能夠用SJA1000的時鐘輸出信號CLKOUT來驅動單片機。
        (2)復位引腳的問題。雖然SJA1000的復位是低電平,但不能通過一個非門直接連接單片機的復位引腳。一般對解決復位引腳問題有兩種方式:第一種是使用單片機的I/O引腳控制SJA的復位引腳,其好處是單片機可以完全控制SJA的復位過程;第二種是采用適當的復位芯片,為了降低成本,該采取的是第一種方法。
        (3)RX1引腳的電位必須維持在約0.5 VCC上,否則將不能形成協議所要求的邏輯電平。
        (4)一定要注意電纜的終端阻抗匹配,它直接影響是否能正常工作和網絡性能。CAN接口模塊的硬件電路圖見圖3,在PCA82C250的RS腳上接有一個斜率電阻R,可根據通信速度適當調整電阻的大小。

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

        2 通信模塊軟件
        2.1 SJA1000驅動程序的實現
        SJA1000驅動程序是由SJA的初始化函數、發送函數、接收函數組成的,圖4所示為其流程圖。

        (1)SJA1000的初始化。SJA1000在系統上電、硬件復位或主控制器發出復位命令后需要進行初始化,以設定它的工作模式、通信速率、輸出控制方式和標識符屏蔽格式等重要參數。CAN控制器SJA1000的初始化只能在復位模式下才能完成。程序的流程圖如圖4所示。
        首先程序檢測CAN接口是否正常工作,即向SJA1000的測試寄存器寫入并讀出,校驗其結果是否一致,如果結果一致則進入復位模式進行初始化設置。在初始化的過程中,如果對某個寄存器的設置超過規定的時間還未完成,則認為初始化失敗,初始化程序自動發送錯誤信號。
        (2)數據的發送與接收。SJA1000芯片有一個報文發送緩沖區和兩個報文接收緩沖區,用于CAN報文傳送。數據從CAN控制器SJA1000發送到 CAN總線首先是由CAN控制器自動完成的,發送數據程序把數據存儲區中待發送的數據取出,組成信息幀,并將主機的ID地址填人幀頭;然后將信息幀發送到 CAN控制器的發送緩沖區;最后啟動發送命令即可。信息從CAN總線到CAN接收緩沖區也是由CAN控制器自動完成的。接收程序只需從接收緩沖區讀取要接收的信息,并將其存儲在數據存儲區即可。

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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 元阳县| 申扎县| 武平县| 龙岩市| 洪江市| 任丘市| 铁力市| 富裕县| 云霄县| 望奎县| 新晃| 铁岭县| 曲松县| 安远县| 达拉特旗| 普格县| 海盐县| 宜州市| 怀安县| 通许县| 望谟县| 丰原市| 星子县| 凤冈县| 呼图壁县| 徐州市| 永康市| 盈江县| 比如县| 荔波县| 曲松县| 察哈| 塔城市| 固原市| 林周县| 剑河县| 建阳市| 乌拉特前旗| 阳原县| 九龙县| 新兴县|