新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > SJA1000硬件電路設計

        SJA1000硬件電路設計

        作者: 時間:2016-12-12 來源:網絡 收藏
          首先對CAN總線控制器SJA1000的管腳我們必須熟悉。下面是其各個管腳的功能參數。  

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

          各個管腳的符號功能什么的上面的表里介紹的很詳細,我就不多廢話了。

          接著我們看SJA1000的這些管腳在實際電路中是怎么進行連接的,因為只談SJA1000的硬件電路設計,所以就截一張PIAE提供的電路原理圖里關于SJA1000的部分。

          

          下面我們要具體解析這個電路圖。

          AD0-AD7是地址/數據復用總線。因為這個電路是把SJA1000做外部RAM擴展了,所以它的電路連接也勢必要符合外部RAM的連接要求。(特權同學也是第一次接觸單片機的外部存儲器擴展應用,所以開始的時候也很是納悶,然后拿起課本一陣惡補后才恍然大悟。)先補一下外部擴展RAM的知識,然后再談這個電路就容易多了:51單片機外部RAM的擴展最多是可以尋址64KB的,也就是最多可以有16條地址線來尋址,P0口是低八位地址擴展口,P2口是高八位地址擴展口。如果外部RAM不需要用到全部16條地址線(SJA1000就只有8條地址線),那么只要把低位地址線和外部RAM的相應地址線連接,高位的地址線在尋址時都默認為1,比如這里的SJA1000,它的8條地址線是和P0口相連接的,所以對SJA1000的寄存器尋址時的地址應該是FF00H-FFFFH,但是為什么PIAE提供的程序里的地址定義卻是FE00H-FEFFH呢?這就要討論CS信號的連接問題了,我們知道,CS是片選輸入信號,只有當它是低電平時才能訪問SJA1000。再看看它和誰連了?是P2.0口,正好是地址線高八位的最低位,如果按常理來說,尋址FF00H,那么P2.0就是高電平,SJA1000就不能被訪問。所以尋址FE00H時才選通SJA1000,這時才是SJA1000寄存器的地址。

          上面討論了尋址的問題,只是就事論事,如果還不理解,我建議找本書詳細了解下單片機的外部存儲器的擴展后就會明白的。另外,我們知道單片機的P3.0和P3.1有第二功能,就是做RD和WR用,所以它們就和外部寄存器(這里指SJA1000)的RD和WR相連接了。單片機的ALE腳和存儲器的ALE腳也必須相連接。以上的這些連接使得SJA100成為了單片機的外部存儲器。

          再看INT腳是和單片機的INT1相連,也就是作為接收中斷信號來告訴單片機接收到了新的數據幀。RST腳是復位腳,接P2.3成為可編程的。

          TX0RX0連接82C250的對應腳,數據幀是通過這兩個腳傳送出去的(具體的工作原理可以參考82C250的資料,這里就不討論了)。MODE腳接正,說明工作在INTER模式下。XTAL1和XTAL2兩個腳接16MHz的晶體,SJA1000的工作是有一定的時序的,它可以完成數據的發送以及數據的校驗等功能,這完全是IC設計者考慮的東西,我們只要了解它的工作原理,通過單片機配置SJA1000的工作方式,并且向SJA1000寫數據或者讀數據就可以達到CAN總線通信的目的了。



        關鍵詞: SJA1000硬件電

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 搜索| 鞍山市| 达州市| 梁平县| 寿宁县| 方正县| 资源县| 肃南| 吉水县| 东港市| 汾西县| 阿巴嘎旗| 含山县| 隆回县| 叙永县| 六盘水市| 车险| 多伦县| 化德县| 沁源县| 吐鲁番市| 深水埗区| 宣化县| 苗栗市| 大邑县| 鹤庆县| 诸城市| 井陉县| 从江县| 凤山县| 汉沽区| 南江县| 双辽市| 措勤县| 宁武县| 青阳县| 常山县| 麻栗坡县| 石泉县| 连云港市| 鄢陵县|