在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于S3C44B0x處理器和SJA1000芯片實現通信模塊的設計

電子設計 ? 來源:測控技術 ? 作者:夏繼強,袁駿,滿 ? 2021-05-26 10:37 ? 次閱讀

作者:夏繼強,袁駿,滿慶豐

近20年來工業測控系統發展的趨勢是:分散控制和集中管理、標準化和開放性。工業測控系統從傳統的集中測量控制系統轉向網絡化的集散控制系統。隨著現場總線技術高速發展和標準化程度不斷提高,以現場總線技術為基礎的開放型集散測控系統—現場總線測控系統得到了廣泛的應用。同時,以太網的應用也迅速向工業測控系統滲透,在工業自動化應用中異軍突起。

這種趨勢的出現與計算機技術、信息技術、網絡通信技術的高速發展相關。現代工業系統信息交換的需求也已經從管理層內部迅速覆蓋到控制、現場設備等各個層次,連接上層網絡和現場總線的通信設備成為工廠自動化系統中的關鍵設備之一。CAN-Ethernet通信模塊,是一種直接連接以太網和CAN現場總線的設備,有效解決了控制系統中現場總線和上層信息管理層的互聯問題,使自動化系統中的信息交換可以深入到現場設備一級。

1 CAN 總線和以太網的連接

現有的CAN 總線到以太網的通信實現方案中,采用較多的是使用一臺連接以太網的計算機,在計算機中安裝一塊內置式CAN通信板卡;或者通過計算機并行和串行接口外接CAN 的通信模塊。這種方法有一定局限性,例如,使用計算機體積大,成本高;計算機故障后的重啟速度慢,這可能嚴重影響系統的工作。采用基于ARM微處理器的單板機系統建立CAN-Ethernet 通信模塊,可以很好地解決上述問題,降低系統的成本,提高其性能。CAN-Ethernet通信模塊連接以太網和CAN 總線的結構如圖1 所示。在以太網和CAN 總線之間,可以掛接一個通信模塊連接兩種網絡,也可以使用多個通信模塊形成多個通路。對于第二種情況,以太網上的計算機可以通過指定IP地址和上層協議的端口選擇通路。

圖1 通過通信模塊連接以太網和CAN 總線

2 通信模塊的硬件設計

信模塊的硬件核心采用高性能的ARM處理器S3C44B0x。它是一種精簡指令處理器,可以在32位指令字的ARM模式下和16位指令字的Thumb模式下工作,設計者可以根據需要在性能和代碼大小之間進行折衷;片內有8KB的高速靜態RAM,既可以作為高速緩存,也可以作為片內存儲器使用;片內外設包括異步和同步串行接口、I2C接口、LCD控制器及接口、實時時鐘等。ARM處理器還具有低能耗和高性價比,非常適用于構建性能較高的嵌入式系統

通信模塊使用2片39VF040芯片,位擴展后組成512K/16bit共1MB的Flash ROM作為程序和配置數據的存儲空間,使用1片62LV25616芯片組成256K/16bit 共512B的靜態隨機存儲器。CAN總線通信控制芯片選用了Philips公司的SJA1000T,它是一種獨立的CAN 總線通信控制器,僅需要CPU給出必要的指令,控制器就可以自動完成鏈路層以下的收發工作,并通知CPU總線的工作狀態。以太網通信控制芯片采用了臺灣Realtek公司的RTL8019as,它是一種ISA 接口的10Mb/s以太網卡芯片,內部包含了以太網媒體訪問控制和物理層驅動,并帶有16KB的片上緩沖RAM。

2. 1 處理器和5 V 系統數據線的連接

系統中的處理器S3C44B0x 和存儲器芯片都使用3.3 V 的IO電壓,CAN總線接口、以太網接口則使用5V的工作電壓。 S3C44B0x 的數據、地址和控制信號線可以直接驅動這些外圍電路芯片(參考S3C44B0x、SJA1000、RTL8019AS 數據手冊) ,但是外圍電路芯片輸出的高電平可能損壞處理器和直接掛接在處理器數據線上的其他芯片。因此,數據線上應該使用總線轉換器進行3.3/5V電平轉換。系統選用了兼容3.3 V和5V的信號電平的雙向總線收發器LCX245芯片。LCX245 的控制信號包括方向控制端DIR(0 :B →A ,1 :A →B) 和使能控制端OE(0 :接通,1 :隔斷) ,這些控制信號將使用GAL芯片產生。圖2 為系統的硬件連接示意圖。

圖2 系統的硬件連接示意圖

GAL 芯片選用GAL16V8D-15LP ,它的傳播延遲時間為15ns ,反饋延遲時間為7ns ,適于較高速度的工作。除了產生總線收發器芯片的控制信號外,同一片GAL 還用來產生SJA1000 需要的控制信號。根據處理器S3C44B0x 的輸出信號, 包括為SJA1000分配的地址組選通信號nGCS3和RTL8019分配的地址組選通信號nGCS4、讀寫信號線nOE和nWE,可以產生總線收發器LCX245所需要的DIR和OE信號,各信號如圖3 所示。

圖3 LCX245 控制信號的產生

nGCSx 是處理器的地址組選通信號,S3C44B0x 將外部地址空間從地址0 開始,每32M劃分為一個組(Bank ) ,外部尋址時地址線A0 ~ A24 輸出組內地址,該地址所在的組的組選通信號同時有效。圖中虛線代表寫操作時的DIR 信號,實線為讀操作的信號。從圖中可以得到使用ABEL 語言描寫的的信號生成邏輯式為:

OE = (nOE &nWE) # (nGCS3 &nGCS4 &nGCS5) ;

DIR = nOE # (nGCS3 &nGCS4 &nGCS5) ;

但是為了使系統更加穩定地工作,應保證OE 信號有效時DIR 信號不發生變化,也就是說進行讀操作時圖中OE 低電平脈沖的前沿應晚于DIR ,后沿應早于DIR ,這樣將出現反饋邏輯,可以使用類似于同步時序電路的設計方法設計。圖4 是OE 信號和DIR 信號的次態卡諾圖,次態符合上述要求,并且在輸入一定的狀態下,OE 信號和DIR 信號總是每次改變一個,逐次進入最后的穩態狀態(粗體字表示) 。圖中“×”表示不會出現的輸入狀態。

圖4 OE 和DIR 次態 卡諾圖

根據卡諾圖重新寫出的次態邏輯產生式,消除單獨輸入(包括OE 和DIR 的當前狀態) 變化可能引起的競爭- 冒險現象后為:

OEn = (nOE &nWE) # (nOE & ! DIR) # (nWE &DIR) # (nGCS3 &nGCS4 &nGCS5) ; ///

DIRn = ( ! OE &DIR) # (nOE &DIR) # (nOE &OE) # (nGCS3 & nGCS4 &nGCS5) ;

編譯GAL 邏輯時應嚴格按照邏輯式生成與或邏輯。

2. 2 CAN 總線通信控制芯片SJA1000 的讀寫

CAN總線通信控制芯片SJA1000 沒有提供單獨的地址線,而使用可以與Intel 和Motorola系列微控制器兼容的分時復用地址/ 數據線。在一個讀寫周期內,微控制器首先輸出操作地址并使地址鎖存信號ALE 有效,SJA1000 在ALE 信號的下降沿將操作地址鎖在片內;之后微處理器發出讀寫信號進行數據傳輸。但S3C44B0x 的數據線和地址線是分離的,對SJA1000 的讀寫操作需要模擬微控制器,先在數據線上寫一個操作地址,并模擬產生一個ALE 信號鎖存這個地址,之后進行正常的讀寫操作。系統使用地址線ADDR0 區分地址傳輸和數據傳輸:寫奇地址時,不選通SJA1000 芯片,但給出一個有效的模擬ALE 信號;讀寫偶地址時,選通SJA1000 讀寫數據。另外,系統同時有兩路CAN 總線接口,讀寫操作根據地址線ADDR1 區分兩個SJA1000 芯片,兩個片選信號和ALE 信號都要通過GAL 芯片產生,各信號如圖5所示。

圖5 SJA1000 控制信號的產生

圖中虛線是向SJA1000 傳輸和鎖存地址的過程,實線是讀寫操作的過程。用ABEL 語言書寫的各信號產生邏輯式為:

CAN-CS = nGCS4 # ADDR0 ;

ALE = ! nWE &ADDR0 & ! nGCS4 ;

對SJA1000 的操作地址如下:地址鎖存向0x08000001端口寫地址;數據讀寫通過地址0x08000000。

3 通信模塊的軟件設計

通信模塊和CAN 總線上的設備節點之間直接通過SJA1000收發CAN 總線報文進行通信,報文中的數據格式可以是基于CAN 總線的上層標準協議,也可以由用戶定義。為了方便與以太網上計算機的通信,CAN-Ethernet 通信模塊在以太網一端使用UDP協議,這樣,計算機上的軟件可以使用操作系統提供的網絡訪問服務。

每一個CAN-Ethernet 通信模塊需要設定局域網內一個惟一的IP地址,通過固定的UDP端口和計算機通信。模塊和計算機之間既可以使用對單點IP的通信,也可以在UDP端口發送廣播報文。在以太網一端,通信模塊接收到UDP 報文后,將其中的信息組織成CAN 總線報文發往CAN 總線;在CAN 總線一端,通信模塊接收報文標識能夠通過本節點接收碼和接收掩碼設置的CAN 總線報文,并封裝為UDP 報文,轉發到以太網上。各節點IP 地址、UDP工作端口和CAN報文接收掩碼等設置在系統初始化時進行。

3. 1 通信控制芯片的初始化和收發操作

對SJA1000T的基本操作如下:

①初始化:硬件復位,進入復位方式; 設置為BasicCAN 模式,CDR = 0x08 ;設置波特率控制字BTR0 ,BTR1 ;設置接收碼和接收掩碼ACR、AMR;完成設定,進入工作模式,CR = 0x1E。

②發送:將CAN 總線報文寫入SJA1000T 發送緩沖區TX2IDR1~2 , TXDR1~8 ;寫發送命令,CMR = 0x01。

③接收:從RXIDR1~2、RXDR1~8 讀出CAN 一幀CAN 總線報文;將SJA1000T 的接收緩沖區窗口滑動到下一幀,CMR =0x04。

RTL8019AS內部有頁地址為0x40~0x79 的256個緩沖頁,每頁256B。這些緩沖頁的一部分作為接收緩沖區,起始頁地址和結束頁地址通過PSTART、PSTOP 寄存器配置,剩余可以作為發送緩沖區使用。硬件把接收緩沖區作為環形緩沖區使用,CURR寄存器和BNRY寄存器分別指明緩沖區中未使用部分的起始和結束頁地址。硬件接收到數據后會自動修改CURR 的值,而BNRY需要讀出一幀數據后由軟件修改;對RTL8019AS的基本操作如下:

①初始化:硬件復位操作,進入停止方式;寫入物理地址到PR0~PR5 ,寫入0x00 到多點接收地址寄存器MAR;設置內部發送緩沖區器起止頁地址到PSTART、PSTOP;寫入當前頁地址到CURR和頁地址界寄存器BNRY中;進入正常工作方式,CR =0x02。

②發送:將以太網報文載入在RTL8019AS中設置的發送緩沖區中;寫發送起始頁地址到TPSR ,寫發送內容長度到TBCR0~1 ;寫發送命令,CMR = 0x1A。

③接收:從在RTL8019AS中設置的接收緩存頁中讀出一幀以太網報文;根據報文長度改變頁地址界限BNRY的值。

3. 2 UDP 和CAN 報文的轉換

CAN - Ethernet 通信模塊收到CAN 總線報文時,將整個報文封裝在一幀UDP 報文中;接收到目的端口與自己的工作端口相符的UDP 報文時,取出其中的數據段作為一幀CAN 總線報文。以太網報文到CAN 總線報文的具體轉換過程如下:

①如果接收到的以太網報文包含IP 報文,分解出IP 報文,否則拋棄這幀報文;

②如果IP 報文的目的地址匹配,并且包含一幀UDP 報文,分解出UDP 報文,否則拋棄;

③如果UDP 報文的目的端口匹配,分解出其中的CAN 總線報文,否則拋棄。

CAN 總線報文到UDP 報文的轉換過程是:

①接收到的CAN 總線報文裝入UDP 報文的數據段,計算校驗和,完成UDP報文封裝;

②加上IP 報文頭部,計算校驗和,完成IP報文封裝;

③加上以太網報文的頭部,報文尾部的校驗和不需要軟件完成,RTL8019AS在發送時會自動添加。

為了減少在轉換過程中的數據拷貝,定義了如下數據結構。從CAN總線上收到的報文直接放在Frame結構體的can[ ]成員中,并記錄長度,封裝為UDP報文的過程就是填充Frame結構體中其他成員的過程;從以太網上收到的報文逐字節放入Frame結構體中,CAN 報文就包含在can[ ]成員中。

struct EthHead {

unsigned char DstPhyAddr[6 ] ; / / 以太網目的地址

unsigned char SrcPhyAddr[6 ] ; / / 以太網源地址

unsigned short Prt ; / / 協議標識

} ;

struct IPHead {

unsigned char VerLen ; / / 版本號和頭長度

unsigned char ServType ; / / 服務類型

unsigned short Len ; / / 長度

unsigned short ID; / / 報文ID

unsigned short FlagAndFrag ; / / 標記和分段

unsigned char TTL ;

unsigned char Prt ; / / 協議標識

unsigned short HdChksum; / / 頭校驗和

unsigned char srcIP[4 ] ; / / 源IP 地址

unsigned char dstIP[4 ] ; / / 目的IP 地址

} ;

struct UDPHead {

unsigned short srcPort ; / / 源端口號

unsigned short srcPort ; / / 目的端口號

unsigned short Len ; / / 長度

unsigned short Chksum; / / 校驗和

} ;

struct Frame {

struct EthHead ethhd ;

struct IPHead iphd ;

struct UDPHead udphd ;

unsigned char can [ 10 ] ; / / 放置CAN 報文

short canlen ; / / 記錄收到的CAN 報文長度

} ;

3. 3 通信程序的實現

處理器對SJA1000T和RTL8019AS 的操作都使用了中斷方式,通信模塊的軟件程序可以分成SJA1000T 中斷服務程序、RTL8019AS中斷服務程序和主程序3 個部分,是典型的前、后臺處理結構。在中斷服務程序中,將收到的CAN 總線報文和以太網報文讀入內存中的緩沖區,并累加緩沖區內還未處理的報文計數。在主程序循環中,輪流處理兩個緩沖區中的報文,并減小報文計數值。圖6 是SJA1000T的中斷服務流程、RTL8019AS中斷服務流程、主程序的流程。由于SJA1000T內部的接收緩沖區只有64B ,所以在程序中定義了容納32個Frame結構體數組can- rbuf [ ]并組成環形緩沖區。同時也定義了相同大小的數組eth- rbuf [ ]組成以太網接收的環形緩沖區。

圖6 通信模塊軟件流程圖

在調試過程中發現,如果轉發過程被特定的中斷程序打斷,可能發生報文計數錯誤;如果向RTL8019AS寫入待發送報文的過程被以太網接收中斷打斷,就無法恢復寫入過程了。因此在轉發過程中應屏蔽相應的中斷。

4 結束語

采用上述方法實現的CAN-Ethernet 通信模塊,解決了以太網和現場總線CAN 總線之間互聯問題,可以根據應用的需求,進行靈活的配置和改進,提高系統的性能和可靠性。實際證明,在局域網環境下模塊工作可靠,在以太網負載適中時,只有很小的通信延遲。它為CAN-Ethernet 的互聯提供了低成本、高性能及靈活的解決方案。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19384

    瀏覽量

    230507
  • 芯片
    +關注

    關注

    456

    文章

    51037

    瀏覽量

    425486
  • 以太網
    +關注

    關注

    40

    文章

    5452

    瀏覽量

    172189
收藏 人收藏

    評論

    相關推薦

    基于S3C44B0X的WAVE音頻文件播放

    采用S3C44B0X內置IIS總線和音頻數模轉換芯片CS4334,本文搭建了以二者為核心的工作平臺,并詳細討論了基于此平臺實現播放WAVE音頻文件的方法.由于S3C44B0X及CS43
    發表于 11-09 17:08 ?1707次閱讀
    基于<b class='flag-5'>S3C44B0X</b>的WAVE音頻文件播放

    基于S3C44B0X處理器實現運動系統電流信號采集電路的設計

    本文首先以三星公司的S3C44B0X處理器為核心芯片,設計電流信號采集電路,然后介紹了非線性能量故障診斷算法。最后以X-Y運動平臺為實驗對象,驗證該算法的有效性。
    的頭像 發表于 03-24 16:23 ?6508次閱讀
    基于<b class='flag-5'>S3C44B0X</b>微<b class='flag-5'>處理器</b><b class='flag-5'>實現</b>運動系統電流信號采集電路的設計

    S3C44B0X pdf

    S3C44B0X p
    發表于 06-27 09:37 ?76次下載

    s3c44b0x中文資料,s3c44b0x中文數據手冊

    S3C44B0X 中文數據手冊...........................................................116 IIC 總線接口
    發表于 06-27 09:40 ?152次下載

    S3C44B0X的培訓資料及源代碼程序

    S3C44B0X的培
    發表于 12-25 22:08 ?37次下載
    <b class='flag-5'>S3C44B0X</b>的培訓資料及源代碼程序

    基于S3C44B0X處理器的JFFS2件系統的實現

    基于S3C44B0X處理器的JFFS2件系統的實現
    發表于 03-28 09:50 ?16次下載

    基于S3C44B0X 的uClinux的移植

    S3C44B0X 作為一款以ARM7TDMI 為內核的微處理器,正日益受到廣泛的應用;uClinux作為一種運行于沒有MMU 的嵌入式微處理器的Linux 衍生操作系統,也廣泛應用于嵌入式開發中。BLOB 作為一
    發表于 05-15 15:40 ?14次下載

    S3C44B0X與LM2028的接口及其編程

    簡要描述了S3C44B0X 內置的LCD 控制和圖形點陣式液晶顯示模塊LM2028的主要特性,給出了S3C44B0X 與LM2028 的硬件電路連接圖。并在此基礎之上,詳細介紹了基本
    發表于 06-11 10:01 ?18次下載

    基于S3C44B0X的嵌入式網絡通信研究

    S3C44B0X 作為一款以ARM7TDMI 為內核的微處理器,得到了廣泛的應用。本文采用該處理器,使用到廣泛應用的源代碼公開的uClinux 操作系統,實現CPU
    發表于 06-15 15:44 ?18次下載

    μC/OS-Ⅱ在S3C44B0X上的移植

    本文簡介了一種實時多任務內核μC/OS-Ⅱ。并根據S3C44B0X 芯片的硬件特性,給出了一種把μC/OS-Ⅱ移植到S3C44B0X 上的方
    發表于 08-31 11:46 ?18次下載

    基于S3C44B0X處理器的VxWorks中斷設計

    通過基于立宇泰S3C44B0X 開發板的BSP 移植調試,闡述了VxWorks 的異常中斷處理機制,實現了VxWorks 基于S3C44B0X 處理
    發表于 09-03 11:25 ?17次下載

    S3C44B0X中文手冊 pdf

    S3C44B0X中文數據 三星的S3C44B0X 16/32位RISC處理器被設計來為手持設
    發表于 02-10 12:07 ?254次下載

    S3C44B0X datasheet, RISC MICRO

    S3C44B0X d
    發表于 03-09 09:47 ?35次下載

    處理器S3C44B0X音頻文件播放

    處理器S3C44B0X音頻文件播放 S3C44B0X是三星公司針對嵌入式系統推出高性價比微處理器,它是基于ARM7TDMI內核的16/32位RISC
    發表于 03-16 11:46 ?777次閱讀
    微<b class='flag-5'>處理器</b><b class='flag-5'>S3C44B0X</b>音頻文件播放

    S3C44B0X原理圖

    S3C44B0X原理圖:
    發表于 09-14 15:28 ?167次下載
    <b class='flag-5'>S3C44B0X</b>原理圖
    主站蜘蛛池模板: 色天使色婷婷在线影院亚洲| 色wwwww| 给个网站可以在线观看你懂的| 亚洲另类电击调教在线观看 | 四虎永久在线精品网址| h网站在线观看| zsvdy午夜片| 日本视频不卡| 日韩激情淫片免费看| 天天干狠狠插| 日本黄色录象| 午夜a级毛片| 国产美女一区二区三区| 第四色激情| 天天操夜夜干| 国产久视频| 4444kk在线看片| h网站在线看| 很黄很暴力 很污秽的小说| 看视频免费网址| 国产午夜免费一区二区三区| 天天操天天干天天舔| 免费一级毛片在级播放| 色网综合| 日日操操干干| 1024免费永久福利视频| 6一10周岁毛片免费| 奇米精品| 午夜痒痒网| 开心色99×xxxx| 久久综合操| 国产黄色小视频网站| 9久久99久久久精品齐齐综合色圆| 中文一区二区| 中文字幕1区| 一级做a爰片久久毛片看看| 在线黄色免费网站| 一级三级黄色片| 色噜噜亚洲| 国产高清在线| 综合激情网站|