ob体育竞彩 _欧宝体育在线链接 學習網站
當前位置: ob体育竞彩 > 現場總線> 正文

嵌入式係統CAN接口電路及軟件設計

時間:2017-11-19 08:17 來源:ob体育竞彩

嵌入式係統CAN接口電路及軟件設計
基於ARM7架構嵌入式係統的CAN接口硬件模塊包括Samsung公司的嵌入式微處理器S3C44BOX和Philips公司的CAN控製器芯片SJAl000和CAN總線收發器PCA82C250。
Samsung S3C44BOX的結構及特點
8KB Cache、 Samsung S3C44BOX微處理器是三星公司專為手持設備和一般應用提供的高性價比和高性能的微控製器解決方案,它使用ARM7TDMI CPU核,工作在66MHZ。為了降低係統總成本和減少外圍器件,這款芯片中還集成了下列部件:外部存儲器控製器、LCD控製器、4個DMA通道、2通道異步UART單元、1個同步串行口(SIO)、1個多主12C總線控製器、1個I Is總線控製器,5通道PWM定時器及一個內部定時器、71個通用I/O口、8個外部中斷源、實時時鍾、8通道10位ADC等。
CAN總線控製器
CAN總線控製器選用Philips公司的SJAl000。 SJAl000是一款獨立的控製器,用於汽車和一般工業環境中的控製器局域網絡(CAN)。它是PHILIPS半導體PCA82C200 CAN控製器(BasicCAN)的替代產品。而且,它增加了一種新的工作模式(PeliCAN),這種模式支持具有很多新特性的CAN2.0B協議。SJA1000是新一代CAN控製器,有如下特點:①和PCA82C200獨立CAN控製器引腳兼容及電氣兼容;②SJA1000有兩種工作模式:基本CAN模式(BASIC CAN)和增強CAN模式(PELI CAN),支持CAN2.0A/B協議;③同時支持11位和29位ID,位速率可達1M,具有總線仲裁功能;④擴展的接收緩衝器(64字節、先進先出FIFO),增強的環境溫度範圍(-40-+125℃);⑤檢錯和糾錯能力加強;⑥支持帶電插拔。
SJA1000方框圖如圖1所示。其中接口管理邏輯IML負責連接外部主控製器,該控製器可以是微型控製器或其它任何控製器。接口管理邏輯IML接收來自微控製器的命令,分配控製信息緩存器發送緩存器TBF、接收緩存器RBF0和RBF1,並為微控製器提供中斷和狀態信息。發送緩存器TBF由10個字節存貯單元組成,存貯由微控製器寫,將被發送至CAN總線網絡的報文。接收緩存器0和1(RBF0、RBF1)均由10個字節組成,交替存貯從總線接收的報文,當一個緩存器分配給CPU,位流處理器可以對另一個進行寫操作。位流處理器是一個控製發送緩存器和接收緩存器(並行數據)與CAN總線(串行數據)之間數據流的序列發生器。位定時邏輯將SJA1000同步於CAN總線上的位流。驗收濾波器支持11位和29位標識符的濾波,所有收到的報文由驗收濾波器驗收並存儲在接收FIFO。錯誤管理邏輯按照CAN協議完成錯誤界定。

CAN總線收發器
CAN總線收發器選用Philips公司PCA82C250產品。CAN總線收發器是CAN協議控製器和物理總線之間的接口,該器件對總線提供差動發送能力並對CAN控製器提供差動接收能力,有很強的抗電磁幹擾(EMI)的能力,至少可掛110個節點。
嵌入式係統的CAN接口電路
圖2是嵌入式微處理器S3C44BOX的CAN接口電路圖。如圖所示,ARM和SJA1000以總線方式連接,由於ARM信號為3.3伏,而CAN總線控製器電平為5伏,所以所有信號之間均需要電平轉換,本例中使用了QS34X245作為電平轉換芯片。QS34X245為80引腳的雙例直插芯片,它既有電平轉換功能(5V變到3.3V),又是一個總線開關和隔離器件。QS34X245內提供一組32位高速CMOS兼容的總線開關,當輸出使能端OEn(n為1~4)為低電平時,開關通,連能總線A和總線B;當輸出使能端OEn為高電平時,則開關斷開,總線A和總線B隔離。OE1控製總線A和總線B的低8位(即A7~A0和B7~B0),OE2控製A15~A8和B15~B8,OE3控製A23~A16和B23~B16,OE4控製A31~A24和B31~B24。由於ARM總線非複用,而SJA1000總線複用,所以必須通過邏輯產生地址鎖存信號ALE,在本例中該信號由芯片GAL22V10產生。SJA1000的片選、讀寫信號均采用ARM總線信號,ALE信號由讀寫信號和地址信號通過GAL產生。在寫SJA1000寄存器時,首先往總線的一個地址寫數據,作為地址,讀寫信號無效,ALE變化產生鎖存信號;然後寫另外一個地址,讀寫信號有效,作為數據。上述邏輯完全通過GAL產生。此外,CAN總線需要在兩線問加一個120歐電阻。

係統軟件的設計
CAN控製器對於主控製器(CPU)來講是一個存儲器映象的I/O設備,SJA1000的功能配置和行為由主控製器的程序執行,主控製器和SJA1000之間的數據交換經過一組寄存器(控製段)和一個RAM(報文緩存器)完成。RAM部分的寄存器和地址窗口組成了發送緩存器和接收緩存器,其中控製段由CPU在初始化時設置,需要發送的數據由CPU填入發送緩存器中。接收緩存器有兩個,對於CPU而言兩者地址是相同的,當CPU讀取一個緩存器時,另一個可同時在接收數據,兩者替工作。SJA1000初始化程序圖3所示。

SJA1000控製段寄存器包括控製寄存器CR、命令寄存器CMR、狀態寄存器SR、中斷寄存器IR、接收代碼寄存器ACR、接收屏蔽寄存器AMR、總線定時寄存器BTR0及BTRl、輸出控製寄存器OCR、測試寄存器TR。控製寄存器用來控製中斷、複位和同步方式。命令寄存器用來控製發送、終止發送、緩衝區釋放、清除過載狀態、睡眠、喚醒和接收方式。狀態寄存器用於指示CAN控製器的當前工作狀態,包括接收緩衝區狀態、數據是否超載、發送緩衝區狀態、發送是否結束、接收是否正在進行、發送是否正在進行、錯誤狀態和總線是否關閉。中斷寄存器用來指示各中斷源狀態,包括接收中斷、發送中斷、出錯中斷、超載中斷和喚醒中斷。接收代碼寄存器存放用於接收幀識別的代碼。接收屏蔽寄存器說明對應於接收代碼的哪些位參與接收幀識別。總線定時寄存器用來設定總線通信速率。輸出控製寄存器用來控製輸出驅動器的輸出方式。測試寄存器僅用於芯片內部測試。
控製CAN總線時首先初始化各寄存器,以設定通信參數(如:模式、位速率、驗收碼、屏蔽碼、字段長、總線定時、輸出模式等),BASIC CAN方式控製段共10個字節。發送數據時首先置位命令寄存器,然後將被發送的報文寫入發送緩衝區,最後置位請求發送,由SJAl000完成發送。接收通過查詢狀態寄存器,讀取接收緩衝區獲得信息,然後釋放接收緩衝器。

    看過《嵌入式係統CAN接口電路及軟件設計》的人還看了以下文章
    關於CAN總線的一些事情 關於CAN總線的一些事情
    CAN總線是各種總線中使用比較廣泛的一種通信技術,它在單片機控製技術中和PLC控製技術中會常常使用這種通信技術。下麵我們來說說關於CAN總線的一些事情。 什麼叫CAN總線 CAN總線它是控製器局域網絡(Controller Area Network, CAN)的簡稱,是由德國博世(BOSC...
    iic總線為什麼需要上拉電阻 iic總線為什麼需要上拉電阻
    II總線是當今電子係統中應用最廣泛的芯片間通信標準,它是一種開漏通信標準,需要上拉電阻將總線電平拉到Vdd 在設計中需要增加上拉電阻,但關鍵是上拉電阻阻值取多少合適呢?通常芯片手冊中會有推薦的上拉阻值,所以在設計時按推薦的取值就可以了。下圖是一...
    組態王HTConvertTime函數年份上限2019怎麼解決 組態王HTConvertTime函數年份上限2019怎麼
    如下圖:組態王HTConvertTime使用2019年 相信用過組態王軟件的人都會知道,組態王HTConvertTime這個函數到了現在2020年已經不能用了,那以前做的項目怎麼辦能,接下來我來為大家介紹以下2種解決方案,如果適用,請采納。 方案1.致電組態王,要求組態王廠家發...
    電子開發中如何確定使用I2C總線還是SPI總線或者CAN總線 電子開發中如何確定使用I2C總線還是SPI總線
    電子項目開發中經常用到通訊功能,包括板子上芯片間的通訊和設備間的通訊。而常用的有線通訊方式無非就這幾種,如I2C、SPI、RS232、RS485接口、CAN、USB等。其中I2C也叫IIC,對於題目中提到的幾種通訊方式,I2C和SPI是芯片間的短距離通訊,無法長距離通訊。...
    can協議是什麼 can協議是什麼
    CAN總線是德國公司BOSCH公司為解決現代汽車中眾多控製和測試儀器之間的數據交換而開發的一種串行數據通信協議,即控製器局域網總線。 其是一種多主總線,通信介質可以是雙絞線、同軸電纜、光纖,通信速率可達1Mb/s,通信距離可達10Km。此協議的最大特點是廢...
    Baidu
    map