《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于FPGA的CAN總線控制器SJA1000軟核的設計
基于FPGA的CAN總線控制器SJA1000軟核的設計
湯書森,劉 棟,李建明 蘭州大學
摘要: 分析了CAN控制器SJA1000的特點及CAN協議通信格式。設計了控制器SJA1000的IP軟核,能為應用提供一個性能優良的、易于移植的控制器SJA1000,實現了對步進電機的控制。
Abstract:
Key words :


    控制局域網(CAN)屬于現場總線的范疇,它是一種有效支持分布式控制或實時控制的串行通信網絡。與一般的通信總線相比,CAN總線的數據通信可靠性、實時性和靈活性好,應用領域非常廣泛,通常基于ARM或51單片機,實現與CAN控制器的通信聯絡。FPGA/SOPC技術是實現嵌入式系統的最高形式,基于IP軟核的設計與應用也必將成為替代硬核的一種發展趨勢。憑借QuartuslI和NiosII工具,基于FPGA的VHDL(或Verilog)語言設計的IP核能夠提供靈活性和性能更好的控制器。
    圖1為一個基于FPGA的控制器的CAN總線節點。其中PCA82C251是CAN總線接收器,SJA1000是CAN總線通信控制器,PMM8713是驅動步進電機的脈沖分配器,FPGA模塊在節點模型中對SJA1000進行控制,并將接收到的幀信息進行處理,發送給脈沖分配器,以驅動步進電機。

a.JPG


    在設計中采用自頂向下的設計方法。通過分析SJA1000常用的控制芯片51單片機的功能,將其分為主要的4個模塊:初始化模塊、位查詢模塊、數據處理模塊和緩沖區釋放模塊。
    對SJA1000完成控制功能的過程用狀態圖描述如圖2所示,這也是系統的主狀態機。4個狀態對應上述的4個功能模塊,首先在initial_st-ate完成對sJA1000的初始化,在由init_end信號給出初始化完成標志后,進入查詢狀態,即query_RBS狀態,由位查詢模塊完成此時對SJA100 0的狀態查詢。如果查詢到SJA1000緩沖區有幀信息,將qRBS_end置“1”,進入下一個狀態frame_cope,即幀處理狀態,此時由數據處理模塊完成對緩沖區的數據讀取,并作處理。在讀取完一幀數據后,需要釋放緩沖區,為下一幀信息的接收做準備。此時狀態轉入了release_buff-er,對應功能模塊中的緩沖區釋放模塊,此狀態結束后又轉入位查詢狀態,為下一幀信息接收做準備。

b.JPG


    初始化模塊主要在系統上電或重啟后,先對SJA1000進行初始化;位查詢模塊是在初始化完成后,對SJA1000狀態寄存器的接收緩沖區標志位不斷進行查詢,如果在緩沖區收到一幀信息后,則轉入數據處理模塊,否則繼續進行查詢;數據處理模塊則是在查詢到接收緩沖區有數據后,讀入幀數據,并對幀數據進行處理;緩沖區釋放模塊是在一幀信息處理完畢后,釋放緩沖區空間。
    除了上述4個功能模塊之外,還需要讀寫模塊、雙端口模塊、模塊接口控制邏輯等。

1 讀寫模塊
    由SJA1000的數據手冊可知,SJA1000提供的微處理器接口信號有地址數據復用總線AD0~AD7、地址鎖存信號ALE、片選信號g.jpg、讀寫使能信號h.jpgi.jpg、以及復位信號j.jpg
    SJA1000的數據信號和地址信號是時分復用的,而FPGA中不存在地址的概念,對于FPGA來說,輸出的只有數據。因此設計的關鍵就是把S-JA1000中的寄存器地址當成數據寫入到SJA1000中,配合地址鎖存信號ALE和寫允許信號i.jpg完成對SJA1000特定寄存器的命令字寫入。讀寫使能信號是h.jpgi.jpg以及復位信號j.jpg。設計的關鍵就是把SJA1000中的寄存器地址當成數據寫入到SJA1000中,配合地址鎖存信號ALE和寫允許信號完成對SJA1000特定寄存器的命令字寫入。與寫操作相似,只需嚴格按照時序,將ALE、h.jpgi.jpgg.jpg引腳的電平互相配合置高或置低,即可完成讀操作。讀寫周期時序圖如圖3和圖4所示。

c.JPG


    設計時采用狀態機的形式,由讀寫時序圖可以看到,與SJA1000讀寫相關的控制信號有ALE、h.jpgi.jpgg.jpg。無論讀寫,都必須先輸出地址,由接口控制邏輯模塊輸入地址。AD[7..0]是數據雙向流通的,由雙端口模塊組成,讀寫模塊與之相接口,輸入、輸出設計分開。讀寫模塊在與接口控制邏輯接口模塊相連接時,輸出的數據與輸入的數據也設計分開。同樣讀寫模塊的開啟信號與讀/寫選擇信號也由接口控制邏輯給出。由QuartuslI生成的讀寫模塊如圖5所示。

d.JPG


    在IDLE狀態等待,當4個功能模塊中需要使用讀寫功能時,由接口控制模塊控制使該功能模塊與讀寫模塊連接,相應的功能模塊輸出地址到讀寫模塊,接口控制模塊配合給出讀寫選擇信號,然后進入address狀態,輸出地址到SJA1000,判斷讀寫選擇信號后,進入讀狀態或者寫狀態。在讀寫子狀態只需按照時序圖輸出ale、cs、wr、rd的值即可,標志信號w_ok表示一次讀/寫完成。
    在SJA1000的讀寫過程中,對各個信號的持續時間有著嚴格的要求。以讀操作為例,h.jpg信號的有效持續時間必須最大為50 ns,因此在設計中,h.jpg信號保持低電平的時間可以比這個時間長。

2 接口控制邏輯模塊
    接口控制邏輯是本系統的核心模塊,它與4個功能模塊、讀寫模塊相連接,由一個狀態機組成,即系統的主狀態機。在狀態機的不同狀態中,控制讀寫狀態機與對應的功能模塊相連接,3個模塊互相配合完成一項功能。QuartuslI生成的模塊圖如6所示。

e.JPG


    每一個功能模塊都有對應的接口信號,而data_in_infer、addr_out_infer、data_in_infer、w_ok_in、r_ok_in是讀寫模塊的信號接口。
    需要注意的是,本系統中使用了主從狀態機,即狀態機的嵌套。在主狀態進入初始化狀態機后,立即給出一個enable信號,啟動從狀態機,并設置一個從狀態機的完成信號finish(高電平有效),且初始值為低,然后在主狀態機不停的檢測finish信號,如果finish為高,則進入下一個狀態,查詢狀態。而在從狀態機中,則不停地檢測enable信號,如果為高,則開始工作,當完成從狀態機后,將finish信號置高。如此就完成了主從狀態機的互動。接口控制邏輯模塊中的start、end信號即為系統主從狀態機互動信號。

3 初始化模塊
    初始化模塊的功能是完成SJA1000的初始化。CAN2.0B規范允許SJA1000工作在兩種模式,即BasicCAN模式和PeliCAN模式,上電默認為BasicCAN模式。在兩種模式下都需要對SJA1000的模式寄存器CR、驗收碼寄存器ACR、驗收屏蔽寄存器AMR、總線定時寄存器BTR0、BTR1和輸出控制寄存器OCR寫入控制命令。
    在本設計中,借用ROM的思想,將需要讀寫的寄存器地址和數據統一編碼,固化存儲起來,對SJA1000進行讀寫時,只需要按照一定的順序讀出數據和地址,輸出到即可。

4 位查詢模塊
    位查詢模塊主要功能是在SJA1000轉入工作模式后能夠讀取存在接受緩沖區RXFIFO的幀信息,在本設計中讀取幀信息采用了查詢方式,即不停地查詢SJA1000狀態寄存器SR的RBS位,如果查詢到RBS位為“1”,即表明接收緩沖區滿,RXFIFO中有可用信息,此時將轉入數據處理模塊,由數據處理模塊進行數據讀入,并進行處理。在查詢過程中,對SJA1000的狀態寄存器進行了讀操作。

5 數據處理模塊
    數據處理模塊功能是從SJA1000的緩沖區讀入數據,并作處理。在讀入數據時,只需將輸出的地址定位到SJA1000接收緩沖區的數據場依次將數據從緩沖區讀入即可。在CAN總線的通信中,發送的為幀信息,其數據幀結構如圖7所示。

f.JPG


    在對數據進行處理時,前16位為ID,有用的數據是在幀中的數據場(Data Field)中,因此只需略過前16位,對后面最多8個字節的數據進行處理,分配到步進電機的引腳上即可。

6 緩沖區釋放模塊與雙端口模塊
    在緩沖區的數據被讀入后,需要對緩沖區的數據清零,為后續的數據讀入做準備。本質上仍是對SJA1000的命令寄存器(CMR)寫操作。在狀態寄存器與接收緩沖區相關的位為RRB,置1即可釋放緩沖區,這樣就會導致接收緩沖區內的另一條信息立即有效,從而進入下一幀數據的數據查詢、處理過程。
    在本設計中,輸出的數據引腳為雙向引腳,設計成三態輸出,這是因為雙向端口在完成輸入功能時,必須使端口處于高阻態,否則外部數據不能正確讀入。
    其設計關鍵在于,實體部分必須對端口屬性進行申明,端口屬性必須為inout類型,在構造體對輸出信號進行有條件的高阻控制。

結語
    CAN總線接口控制器由VHDL語言描述,易于修改和移植,可以將幾個軟核集成到一個FPGA芯片上去,具有單片機所沒有的優勢,在汽車領域具有良好的應用前景。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲尤物精选| 看欧美日韩国产| 亚洲国产高清视频| 羞羞视频在线观看欧美| 亚洲一区二区三区四区五区黄| 亚洲全部视频| 亚洲国产综合在线看不卡| 国内精品一区二区三区| 国产日产精品一区二区三区四区的观看方式 | 欧美日韩国产一区二区| 欧美伦理91i| 欧美日韩国产精品一区二区亚洲| 欧美激情中文不卡| 欧美日韩xxxxx| 欧美三区免费完整视频在线观看| 欧美日本国产精品| 欧美三级免费| 国产精品视频专区| 国产欧美日韩视频在线观看| 国产乱码精品1区2区3区| 国产欧美精品在线| 国外成人在线视频| 亚洲春色另类小说| 亚洲卡通欧美制服中文| 亚洲视频精品| 午夜精品国产更新| 亚洲国产精品999| 日韩一二在线观看| 亚洲香蕉视频| 久久精品2019中文字幕| 久久久久综合一区二区三区| 久久亚洲综合网| 欧美高潮视频| 欧美日韩中文字幕精品| 国产精品伦理| 黄色国产精品| 亚洲精品精选| 亚洲影院色在线观看免费| 欧美在线啊v| 亚洲美女毛片| 午夜在线精品偷拍| 久久亚洲精品欧美| 欧美日韩国产成人在线| 国产老肥熟一区二区三区| 在线观看国产欧美| 一区二区三区精品| 久久成人综合视频| 这里只有精品视频在线| 欧美一区二区日韩| 欧美高清视频在线观看| 国产精品任我爽爆在线播放| 极品日韩av| 正在播放亚洲| 亚洲国产毛片完整版| 国产精品99久久久久久久女警 | 性做久久久久久| 亚洲精品裸体| 欧美亚洲日本一区| 免费成人高清在线视频| 欧美午夜久久久| 雨宫琴音一区二区在线| 亚洲视频香蕉人妖| 亚洲电影免费观看高清完整版在线 | 亚洲乱码日产精品bd| 午夜精品久久久久久久久久久久 | 久久精品国产一区二区三区免费看| 欧美成人免费全部| 国产精品试看| 亚洲精品美女在线观看| 性色av一区二区三区红粉影视| 日韩视频免费大全中文字幕| 欧美一区在线直播| 欧美日本不卡| 精品99一区二区| 亚洲综合国产精品| 一区二区三区鲁丝不卡| 久久视频在线看| 欧美性色aⅴ视频一区日韩精品| 好男人免费精品视频| 中文一区二区在线观看| 亚洲三级毛片| 久久久久欧美精品| 国产精品免费网站在线观看| 亚洲国产精品成人久久综合一区| 香蕉成人啪国产精品视频综合网| 一本色道精品久久一区二区三区 | 久久久久久一区| 国产精品推荐精品| 亚洲人体1000| 亚洲国产婷婷香蕉久久久久久99| 欧美一区二区福利在线| 欧美精品 国产精品| 黄色在线一区| 西瓜成人精品人成网站| 亚洲一区二区三区免费视频| 欧美激情va永久在线播放| 韩国一区电影| 欧美一区二区三区在线播放| 亚洲欧美激情视频在线观看一区二区三区| 欧美大尺度在线| 1024成人| 亚洲黄网站在线观看| 久久精品免费电影| 国产美女扒开尿口久久久| 亚洲视频香蕉人妖| 亚洲一区二区三区在线观看视频| 欧美激情久久久久| 一区二区三区在线视频观看| 欧美一站二站| 久久精品欧洲| 国产主播喷水一区二区| 欧美一二三区在线观看| 欧美亚洲一级片| 国产精品一区二区久久| 亚洲午夜电影网| 亚洲欧美成人一区二区三区| 欧美日韩在线视频首页| 亚洲精品视频在线播放| 日韩视频一区| 欧美日韩精品国产| 99国产精品视频免费观看一公开| 一区二区三区精品视频| 欧美日本三区| 99精品国产热久久91蜜凸| 在线亚洲精品福利网址导航| 欧美精品一卡| 一个色综合导航| 亚洲欧美日韩爽爽影院| 国产精品久久久久9999| 亚洲神马久久| 欧美一区二区在线观看| 国产视频亚洲精品| 久久不射中文字幕| 美国十次了思思久久精品导航| 在线观看91久久久久久| 亚洲精选91| 欧美体内she精视频| 国产精品99久久99久久久二8| 亚洲欧美日韩精品| 国产在线不卡精品| 亚洲日本乱码在线观看| 欧美精品在欧美一区二区少妇| 99ri日韩精品视频| 亚洲欧美日韩精品综合在线观看| 国产欧美亚洲视频| 亚洲国产精品999| 欧美日韩精品一二三区| 亚洲已满18点击进入久久| 久久久水蜜桃av免费网站| 亚洲国产一区二区三区高清 | 欧美~级网站不卡| 亚洲免费电影在线观看| 亚洲一区免费| 国外成人在线视频网站| 亚洲精品无人区| 国产精品一卡二卡| 亚洲国产裸拍裸体视频在线观看乱了中文 | 国产精品手机在线| 亚洲大胆人体视频| 欧美日韩国产综合视频在线| 亚洲中午字幕| 美日韩精品视频| 一区二区三区精密机械公司| 久久精品主播| 亚洲精品久久久蜜桃| 午夜一级在线看亚洲| 一区二区视频欧美| 亚洲一区二区三区久久| 好吊色欧美一区二区三区视频| 一区二区三区高清不卡| 国产亚洲一二三区| 亚洲图片你懂的| 一区二区三区自拍| 亚洲欧美精品suv| 亚洲国产精品国自产拍av秋霞| 亚洲夜间福利| 一色屋精品视频在线观看网站| 亚洲天堂视频在线观看| 好看的亚洲午夜视频在线| 在线一区二区视频| 国产专区精品视频| 亚洲自拍偷拍麻豆| 亚洲国产欧美精品| 欧美资源在线观看| 99精品欧美一区二区三区综合在线| 久久久噜噜噜久久中文字免| 亚洲欧洲一区二区天堂久久 | 亚洲人精品午夜在线观看| 国产精品一区免费视频| 亚洲精品系列| 国内精品嫩模av私拍在线观看 | 国产区日韩欧美| 一本大道久久a久久精二百| 国产一区二区视频在线观看| 亚洲午夜高清视频| 黄色小说综合网站| 久久av一区二区三区亚洲| 亚洲免费av电影| 欧美激情国产日韩| 久久国产精品久久w女人spa|