女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

基于現場總線實現RS-232到CAN轉換的應用設計

電子設計 ? 來源:國外電子元器件 ? 作者:李娟 ? 2021-05-20 09:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 引言

工業設備通信通常涉及到很多硬件和軟件產品以及用于連通標準計算機平臺(個人計算機或工作站)和工業自動化應用設備的協議,而且所使用設備和協議的種類繁多。因此,大部分自動化應用設備都希望執行簡單的串行命令,并希望這些命令同個人計算機或者附加的串行端口板上的標準串行端口兼容。RS-232是目前PC機與通信工業中應用最廣泛的一種串行接口。RS-232被定義為一種在低速率串行通訊中增加通訊距離的單端標準。由于RS-232的發送端與接收端之間有公共信號地,所以它不能使用雙端信號,否則,共模噪聲會耦合到信號系統中。RS-232標準規定,其最大距離僅為15m,信號傳輸速率最高為20kbit/s。

CAN,全稱為“Controller Area Network”,即控制器局域網,是國際上應用最廣泛的現場總線之一,一個由CAN總線構成的單一網絡受到網絡硬件電氣特性的限制。CAN作為一種多主方式的串行通訊總線,其基本設計規范要求高位速率和較高的抗電磁干擾性能,而且要能夠檢測出通訊總線上產生的任何錯誤。當信號傳輸距離達10km時,CAN仍可提供高達50kbit/s的數據傳輸速率。表1為CAN總線上任意兩個節點之間最大傳輸距離與其位速率之間的對應關系。

表1 CAN總線系統任意兩節鼎足之勢之間的最大距離

位速率/kbps 1000 500 250 125 100

最大距離/m 40 130 270 530 620

位速率/kbps 50 20 10 5

最大距離/m 1300 3300 6700 10000

由此可見,無論從實時性、適應性、靈活性,還是可靠性上來看,CAN總線都是一種比RS-232更為優秀的串行總線。當兩臺串口設備的相距較遠,不能直接用RS-232把它們連接起來時,就可以把RS-232轉換為CAN,通過CAN總線來實現串口設備的網絡互連。

但是,RS-232和CAN在電平和幀格式上都是很大的不同。具體表現如下:

RS-232標準電平采用負邏輯,規定+3V~+15V之間的任意電平為邏輯“0”電平,-3V~-15V之間的任意電平為邏輯“1”電平。而CAN信號則使用差分電壓傳送,兩條信號線稱為“CAN_H”和“CAM_L”,靜態時均為2.5V左右,此時的狀態表示為邏輯“1”,也可以叫做“隱性”;用CAN_H比CAN_L高表示邏輯“0”,稱為“顯性”。顯性時,通常電壓值為:CAN_H=3.5V,CAN_L=1.5V;

RS-232串口的幀格式為:一位起始位,八位數據位,一位可編程的第九位(此位為發送和接收的地址/數據位),一位停止位。而CAN的數據幀格式為:幀信息+ID+數據(可分為標準幀和擴展幀兩種格式)。

基于現場總線實現RS-232到CAN轉換的應用設計

因此,設計時就需要有一個微控制器來實現電平和幀格式等的轉換。其轉換方式如圖1所示。

2 RS-232到CAN轉換的硬件設計

在設計RS-232到CAN的轉換裝置時,用單片機AT89C52作為微處理器;用SJA1000作為CAN微控制器,SJA1000中集成了CAN協議的物理層和數據鏈路層功能,可被動局面對通信數據的幀處理;AT82C250作為CAN控制器和物理總線之間的接口,用于提供總線的差動發送能力和CAN控制器的差動接收能力,通過AT82C250的引腳3可選擇三種不同的工作方式(高速、斜率控制和待機)。其中引腳3接地時為高速方式;高速光隔用6N137實現,其作用是防止串入信號干擾;MAX232用來完成232電平到微控制器接口芯片TTL電平的轉換。具體的硬件接口電路參見SJA1000的有關資源,這里不再多做說明。但有以下幾點需要注意。

(1)CAN總線兩端接有一個120Ω的電阻,其作用是匹配總線阻抗,提高數據通信的抗干擾性及可靠行。但實際上只需保證CAN網絡中“CAN_H”和“CAN_L”之間的跨接電阻為60Ω即可。

(2)SJA1000的20引腳RX1在不使用時可接地(具體原因見軟件設計),配合CDR.6的置位可使總線長度大大增加。

(3)引腳TX0、TX1的接法決定了串行輸出的電平。具體關系可參考輸出控制寄存器OCR的設置。

(4)AT82C250的RS引腳與地間接有一個斜率電阻。電阻大小可根據總線通信速度作適當調整,一般在16kΩ~140kΩ之間。

(5)MAX232外圍需要四個電解電容C1、C2、C3、C4,這些電容也是內部電源轉換所需電容,其取值均為1μF/25V,宜選用鉭電容并且位置應用量靠近芯片,電源VCC和地之間要接一個0.1μF的去耦電容。

3 RS-232到CAN轉換的軟件設計

在微處理控制下,RS-232和CAN進行數據交換時,采用串口接收和CAN中斷方式可提高工作效率。其主程序流程圖如圖2所示。SJA1000的初始化在復位模式下才可以進行,主要包括工作方式的設置、時鐘分頻和驗收濾波寄存器的設置、波特率參數的設置以及中斷允許寄存器的設置等。

數據能否準確傳遞還取決于波特率和流量控制,這也是軟件設計時不可忽略的地方。因此接下來主要介紹CAN波特率的設置、串口波特率的自動檢測、串口數據流量控制。

3.1 CAN濾波率的設置

CAN協議中的要素之一是波特率。用戶可以設置位周期中的位采樣點位置和采樣次數,以使用戶可以自由地優化應用網絡性能,但在優化過程中,要注意位定時參數基準參考振蕩器的容差和系統中不同信號傳播延遲之間的關系。

系統的位速率fBil表示每單位時間傳輸數據位的量,即波特率fBit=1/tBit。額定的位定時由3個互不重疊的段SYNC_SEG、TSEG1和TSEG2組成,這3個時間段分別是TSYNC_SEG、TSEG1和TSEG2組成,這3個時間段分別是tSYNC_SEG、tTSEG1和tTSEG2。所以,額定位周期tBit是3個時間段的和。

tBit=tSYNC_SEG+tTSEG1+tTSEG2

位周期中這些段都用整數個基本時間單位來表示。該時間單位叫時間份額TQ,時間份額的持續時間是CAN系統時鐘的一個周期tSCL,可從振蕩器時鐘周期tCLK取得。通過編程預分頻因數(波特率預設值BRP)可以調整CAN系統時鐘。具體如下:

tSCL=BRP×2tCLK=2BPR/fCLK

對CAN位定時計算的另一個很重要的時間段是同步跳轉寬度(SJW),持續時間是tSJW。SJW段并不是位周期的一段,只是定義了在重同步事件中被增長或縮短的位周期的最大TQ數量。此外,CAN協議還允許用戶指定位采樣模式(SAM),分別是單次采樣和三次采樣模式(在3個采樣結果中選出1個)。在單次采樣模式中,采樣點在TESG1段的末端。而三次采樣模式比單次采樣多取兩個采樣點,它們在TSEG1段末端的前面,之間相差一個TQ。

上面所提到的BPR、SJW、SAM、TESG1、TESG2都可由用戶通過CAN控制器的內裝中寄存器BTR0和BTR1來定義。具體如圖3所示。設置好BTR0和BTR1后,實際傳輸的波特率范圍為:

最大=1/(tBit-tSJW),最小=1/(tBit+tSJW)

3.2 串口波特率檢測

當串口設備是主機時,如需檢測此時轉換裝置的串口波特率,首先可對主機的接收波特率(以9600波特為例)進行設定,并在終端發送一個特定的字符(以回車符為例),這樣,主機根據接收到的字符信息就可以確定轉換裝置的通信波特率?;剀嚪腁SCII值是0DH,在不同波特率下接收到的值如表2所列。

表2 不同波特率下接收的字節

波特率(bit/s) 接收字節(十六進制) 波特率(bit/s) 接收字節(十六進制)

1200 80 4800 E6

1800 F0 9600 0D

2400 78 19200 F*

3.3 串口流控制

此處講到的“流“指的是數據流。數據在兩個串口之間的傳輸時,常常會出現丟失數據的現象。由于單片機緩沖區有限,如接收數據時緩沖區已滿,那么此時繼續發送來的數據就會丟失。而流控制能有效地解決該問題,當接收端數據處理不過來時,流控制系統就會發出“不再接收”的信號,而使發送端停止發送,直到收到“可以繼續發送”的信號再發送數據。因此流控制可以控制數據傳輸的進程,防止數據丟失。常用的兩種流控制是硬件流控制(包括RTS/CTS、DTR/CTS等)和軟件流控制XON/XOFF(繼續/停止),下面僅就硬件流控制RTS/CTS加以說明。

采用硬件進行流控制時,串口終端RTS、CTS接到單片機的I/O口,通過置I/O口為1或0來接收和發出起停信號。數據終端設備(如計算機)使用RTS來起始單片機發出的數據流,而單片機則用CTS來起動和暫停來自計算機的數據流。實現這種硬件握手方式時,在編程時根據接收端緩沖區的大小設置一個高位標志和一個低位標志,當緩沖區內數據量達到高位時,就在接收端將CTS線置低(送邏輯0),而當發送端的程序檢測到CTS為低后,就停止發送數據,直到接收端緩沖區的數據量低于低位而將CTS置高為止。RTS則用來標明接收設備有沒有準確好接收數據。

3.4 CAN接收子程序

PeliCAN格式既可以發送標準幀也可以送擴展幀,利用時鐘分頻寄存器中的CDR.7可以調協CAN模式(0-BasicCAN,1-PeliCAN),接收CAN數據時,可根據幀信息中的FF位來判斷是標準幀還是擴展幀,并且RTR位來判斷是遠程幀還是數據幀。以下是CAN接收子程序:

;//////////////////////////////////////////////////////////////////

;//CAN數據接收/統一成2個字節ID的幀格式//

;///////////////////////////////////////////////////////////////////////

RECAN:

MOV R0,#C_RE ;單片機內緩沖區起始地址

MOV DPTR,#RXBUF ;讀取并保存接收緩沖區的內容

MOVX A,@DPTR ;讀取CAN緩沖區的2號字節

MOV @R0,A ;保存

JB ACC.7,EFF_RE ;FF位,0-SFF,1-EFF

MOV R2,#0

SJMP SFF_RE ;ID數目不同,截取“數據字節”的位置不同

EFF_RE:MOV R2,#2

SFF_RE:MOV R2,#2

SFF_RE:

JB ACC.6,EXIT_RECAN ;RTR位判斷,1-遠程幀,則跳出

ANL A,#0FH

MOV R3,A ;這時截取中間4位是數據長度

MOV C_NUM,A ;R3,R5中存放接收幀的長度

RDATA0:

INC DPTR ;2個字節ID

INC R0

MOVX A,@DPTR

MOV @R0,A

INC DPTR

MOVX A,@R0,A

INC DPTR

MOVX A,@DPTR

MOV @R0,A

MOV A,R2 ;如果是EFF則跳過兩個字節ID

JZ DRATA1

INC DPTR

INC DPTR

DATA1: ;數據字節

INC DPTR

INC R0

MOVX A,@DPTR

MOV @R0,A

DJNZ R3,RDATA1

EXIT_RECAN:

RET

4 結束語

計算機的微型化為測控儀表的智能化提供了必要的條件,使得帶微處理器的終端設備具備更好的數字通信能力。隨著越來越多智能終端的出現,無論是對網絡的結構、協議、實時性,還是適用性、靈活性、可靠性乃至成本都有了更高的要求,因此現場總線有著很好的發展前景。CAN總線的幀結構擁有標識ID,這使得設備網絡中擁有多臺網絡主機成為可能,即通過網絡主機可以監控整個設備網絡的工作情況并作出相應的控制決策。本裝置目前已開發完成,并在實際應用中取得了非常好的效果。

責任編輯:gt

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

    關注

    145

    文章

    1986

    瀏覽量

    132828
  • 計算機
    +關注

    關注

    19

    文章

    7662

    瀏覽量

    90760
  • 總線
    +關注

    關注

    10

    文章

    2959

    瀏覽量

    89743
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RS-232RS-485RS-422接口的智能轉換器設計

    的做法是在設備內擴展一個通訊適配卡,由通訊適配卡實現電平轉換,內部主機再通過并行總線讀出或寫入數據。顯然,這種設計方法存在下列缺點: · 由于適配卡是基于某一種總線標準擴展的,而不是基
    發表于 06-18 05:00

    使用自動選向控制的隔離式RS-232RS-485轉換

    要求遠距離或者在多個RS-232應用之間實現RS-232數據傳輸的一些工業用數據鏈路,通常都使用RS-232
    發表于 11-23 07:05

    CANRS232轉換節點的設計與實現

    CANRS232轉換節點的設計與實現 介紹將CAN總線接口與
    發表于 03-30 16:39 ?75次下載

    利用FT8U232AM實現的USB RS-232轉換

    通用串行總線以其傳輸速度快、占用資源少、真正的即插即用等優點正在逐步取代傳統的RS-232總線。以傳統的RS-232接口為數據通信通道的外部設備可以通過USB/
    發表于 04-27 17:29 ?31次下載

    基于單片機的CANRS-232轉換器設計

    本文完成了基于單片機控制的CANRS-232 轉換器的研究與設計,設計了AT89C51單片機對RS-232 接口和CAN 模塊的控制,解
    發表于 08-31 11:45 ?62次下載

    CAN總線現場總線應用方案RS-485升級CAN

    關鍵詞 RS-485、LM3S2016、CAN總線摘要 CAN總線現場
    發表于 11-07 14:14 ?39次下載

    RS-232CAN總線協議適配器的設計

    本文介紹一種設計RS-232CAN 總線協議適配器的方法,采用STC89C51 作為微處理器,MCP2510 作為CAN 總線控制器。詳
    發表于 01-13 14:09 ?87次下載

    基于CAN總線RS-232串口設備遠程通信

    基于CAN總線RS-232串口設備遠程通信 闡述了CAN總線232串口設備遠程通信或自組
    發表于 09-27 16:07 ?1526次閱讀
    基于<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>的<b class='flag-5'>RS-232</b>串口設備遠程通信

    RS-232/RS-485/422與CanBus電平隔離轉換器:MWE-CAN200

    ◆ 功能簡介 MWE-CAN200隔離轉換延長器將RS-232/RS-485/422信號轉換成CanBus電平信號傳輸,達到延長
    發表于 02-23 17:02 ?130次下載

    基于C8051F040單片機的CAN總線RS-232串口通信設計

    目前工業設備之間的通信很多采用RS-232接口,但由于RS-232通信距離短、接口易損,而且只能進行點到點通信,不能直接組成多點通信網絡。而CAN通信速率高、容易實現、且性價比高等諸多
    發表于 06-04 14:49 ?4587次閱讀
    基于C8051F040單片機的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>和<b class='flag-5'>RS-232</b>串口通信設計

    選擇和使用RS-232、RS-422和RS-485串行數據標準的指南

    三種常見的串行數據標準RS-232、RS-422和RS-485按規格和電氣接口進行描述。介紹了電纜端接技術、多個負載的使用、RS-232 的菊花鏈連接、
    的頭像 發表于 03-28 11:03 ?4260次閱讀
    選擇和使用<b class='flag-5'>RS-232</b>、<b class='flag-5'>RS</b>-422和<b class='flag-5'>RS</b>-485串行數據標準的指南

    CAN現場總線RS485/232 智能協議網關

    YC-MDCAN-001 是一款有源RS-232/485 CAN_BUS 總線轉換器,是遠創科技公司為了解決
    的頭像 發表于 09-19 14:50 ?1235次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>現場</b><b class='flag-5'>總線</b>轉<b class='flag-5'>RS</b>485/<b class='flag-5'>232</b> 智能協議網關

    RS-232總線CAN-Modbus網絡的連接技術

    YC-CAN-RTU是一款用于CAN-Modbus現場總線RS-232總線
    發表于 10-15 10:30 ?2149次閱讀
    <b class='flag-5'>RS-232</b><b class='flag-5'>總線</b>與<b class='flag-5'>CAN</b>-Modbus網絡的連接技術

    基于C8051F040的CAN總線RS-232通信設計

    電子發燒友網站提供《基于C8051F040的CAN總線RS-232通信設計.pdf》資料免費下載
    發表于 11-08 10:13 ?0次下載
    基于C8051F040的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>與<b class='flag-5'>RS-232</b>通信設計

    CANRS-232網關的參數介紹

    波特率(Baud Rate):波特率是指數據傳輸的速率,表示每秒傳輸的位數。CAN總線RS-232總線都有自己的波特率范圍,因此需要將CAN
    的頭像 發表于 01-18 10:08 ?1183次閱讀