1 引言
    工業(yè)設(shè)備通信通常涉及到很多硬件和軟件產(chǎn)品以及用于連通標(biāo)準(zhǔn)計(jì)算機(jī)平臺(tái)(個(gè)人計(jì)算機(jī)或工作站)和工業(yè)自動(dòng)化應(yīng)用設(shè)備的協(xié)議,而且所使用設(shè)備和協(xié)議的種類繁多。因此,大部分自動(dòng)化應(yīng)用設(shè)備都希望執(zhí)行簡(jiǎn)單的串行命令,并希望這些命令同個(gè)人計(jì)算機(jī)或者附加的串行端口板上的標(biāo)準(zhǔn)串行端口兼容。RS-232是目前PC機(jī)與通信工業(yè)中應(yīng)用">

欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

技術(shù)頻道

基于CAN總線的RS-232串口設(shè)備遠(yuǎn)程通信

1 引言
工業(yè)設(shè)備通信通常涉及到很多硬件和軟件產(chǎn)品以及用于連通標(biāo)準(zhǔn)計(jì)算機(jī)平臺(tái)(個(gè)人計(jì)算機(jī)或工作站)和工業(yè)自動(dòng)化應(yīng)用設(shè)備的協(xié)議,而且所使用設(shè)備和協(xié)議的種類繁多。因此,大部分自動(dòng)化應(yīng)用設(shè)備都希望執(zhí)行簡(jiǎn)單的串行命令,并希望這些命令同個(gè)人計(jì)算機(jī)或者附加的串行端口板上的標(biāo)準(zhǔn)串行端口兼容。RS-232是目前PC機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。RS-232被定義為一種在低速率串行通訊中增加通訊距離的單端標(biāo)準(zhǔn)。由于RS-232的發(fā)送端與接收端之間有公共信號(hào)地,所以它不能使用雙端信號(hào),否則,共模噪聲會(huì)耦合到信號(hào)系統(tǒng)中。RS-232標(biāo)準(zhǔn)規(guī)定,其最大距離僅為15m,信號(hào)傳輸速率最高為20kbit/s。
CAN,全稱為“Controller Area Network”,即控制器局域網(wǎng),是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一
,一個(gè)由CAN總線構(gòu)成的單一網(wǎng)絡(luò)受到網(wǎng)絡(luò)硬件電氣特性的限制。CAN作為一種多主方式的串行通訊總線,其基本設(shè)計(jì)規(guī)范要求高位速率和較高的抗電磁干擾性能,而且要能夠檢測(cè)出通訊總線上產(chǎn)生的任何錯(cuò)誤。當(dāng)信號(hào)傳輸距離達(dá)10km時(shí),CAN仍可提供高達(dá)50kbit/s的數(shù)據(jù)傳輸速率。表1為CAN總線上任意兩個(gè)節(jié)點(diǎn)之間最大傳輸距離與其位速率之間的對(duì)應(yīng)關(guān)系。
表1 CAN總線系統(tǒng)任意兩節(jié)鼎足之勢(shì)之間的最大距離
位速率/kbps 1000 500 250 125 100
最大距離/m 40 130 270 530 620
位速率/kbps 50 20 10 5  
最大距離/m 1300 3300 6700 10000  
由此可見,無論從實(shí)時(shí)性、適應(yīng)性、靈活性,還是可靠性上來看,CAN總線都是一種比RS-232更為優(yōu)秀的串行總線。當(dāng)兩臺(tái)串口設(shè)備的相距較遠(yuǎn),不能直接用RS-232把它們連接起來時(shí),就可以把RS-232轉(zhuǎn)換為CAN,通過CAN總線來實(shí)現(xiàn)串口設(shè)備的網(wǎng)絡(luò)互連。
但是,RS-232和CAN在電平和幀格式上都是很大的不同。具體表現(xiàn)如下:
R S-232標(biāo)準(zhǔn)電平采用負(fù)邏輯,規(guī)定+3V~+15V之間的任意電平為邏輯“0”電平,-3V~-15V之間的任意電平為邏輯“1”電平。而CAN信號(hào)則使用差分電壓傳送,兩條信號(hào)線稱為“CAN_H”和“CAM_L”,靜態(tài)時(shí)均為2.5V左右,此時(shí)的狀態(tài)表示為邏輯“1”,也可以叫做“隱性”;用CAN_H比CAN_L高表示邏輯“0”,稱為“顯性”。顯性時(shí),通常電壓值為:CAN_H=3.5V,CAN_L=1.5V;
RS-232串口的幀格式為:一位起始位,八位數(shù)據(jù)位,一位可編程的第九位(此位為發(fā)送和接收的地址/數(shù)據(jù)位),一位停止位。而CAN的數(shù)據(jù)幀格式為:幀信息+ID+數(shù)據(jù)(可分為標(biāo)準(zhǔn)幀和擴(kuò)展幀兩種格式)。
因此,設(shè)計(jì)時(shí)就需要有一個(gè)微控制器來實(shí)現(xiàn)電平和幀格式等的轉(zhuǎn)換。
2 RS-232到CAN轉(zhuǎn)換的硬件設(shè)計(jì)
在設(shè)計(jì)RS-232到CAN的轉(zhuǎn)換裝置時(shí),用單片機(jī)AT89C52作為微處理器;用SJA1000作為CAN微控制器,SJA1000中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可被動(dòng)局面對(duì)通信數(shù)據(jù)的幀處理;AT82C250作為CAN控制器和物理總線之間的接口,用于提供總線的差動(dòng)發(fā)送能力和CAN控制器的差動(dòng)接收能力,通過AT82C250的引腳3可選擇三種不同的工作方式(高速、斜率控制和待機(jī))。其中引腳3接地時(shí)為高速方式;高速光隔用6N137實(shí)現(xiàn),其作用是防止串入信號(hào)干擾;MAX232用來完成232電平到微控制器接口芯片TTL電平的轉(zhuǎn)換。具體的硬件接口電路參見SJA1000的有關(guān)資源,這里不再多做說明。但有以下幾點(diǎn)需要注意。
(1)CAN總線兩端接有一個(gè)120Ω的電阻,其作用是匹配總線阻抗,提高數(shù)據(jù)通信的抗干擾性及可靠行。但實(shí)際上只需保證CAN網(wǎng)絡(luò)中“CAN_H”和“CAN_L”之間的跨接電阻為60Ω即可。
(2)SJA1000的20引腳RX1在不使用時(shí)可接地(具體原因見軟件設(shè)計(jì)),配合CDR.6的置位可使總線長(zhǎng)度大大增加。
(3)引腳TX0、TX1的接法決定了串行輸出的電平。具體關(guān)系可參考輸出控制寄存器OCR的設(shè)置。
(4)AT82C250的RS引腳與地間接有一個(gè)斜率電阻。電阻大小可根據(jù)總線通信速度作適當(dāng)調(diào)整,一般在16kΩ~140kΩ之間。
(5)MAX232外圍需要四個(gè)電解電容C1、C2、C3、C4,這些電容也是內(nèi)部電源轉(zhuǎn)換所需電容,其取值均為1μF/25V,宜選用鉭電容并且位置應(yīng)用量靠近芯片,電源VCC和地之間要接一個(gè)0.1μF的去耦電容。
3 RS-232到CAN轉(zhuǎn)換的軟件設(shè)計(jì)
在微處理控制下,RS-232和CAN進(jìn)行數(shù)據(jù)交換時(shí),采用串口接收和CAN中斷方式可提高工作效率。其SJA1000的初始化在復(fù)位模式下才可以進(jìn)行,主要包括工作方式的設(shè)置、時(shí)鐘分頻和驗(yàn)收濾波寄存器的設(shè)置、波特率參數(shù)的設(shè)置以及中斷允許寄存器的設(shè)置等。
數(shù)據(jù)能否準(zhǔn)確傳遞還取決于波特率和流量控制,這也是軟件設(shè)計(jì)時(shí)不可忽略的地方。因此接下來主要介紹CAN波特率的設(shè)置、串口波特率的自動(dòng)檢測(cè)、串口數(shù)據(jù)流量控制。
3.1 CAN濾波率的設(shè)置
CAN協(xié)議中的要素之一是波特率。用戶可以設(shè)置位周期中的位采樣點(diǎn)位置和采樣次數(shù),以使用戶可以自由地優(yōu)化應(yīng)用網(wǎng)絡(luò)性能,但在優(yōu)化過程中,要注意位定時(shí)參數(shù)基準(zhǔn)參考振蕩器的容差和系統(tǒng)中不同信號(hào)傳播延遲之間的關(guān)系系統(tǒng)的位速率fBil表示每單位時(shí)間傳輸數(shù)據(jù)位的量,即波特率fBit=1/tBit。額定的位定時(shí)由3個(gè)互不重疊的段SYNC_SEG、TSEG1和TSEG2組成,這3個(gè)時(shí)間段分別是TSYNC_SEG、TSEG1和TSEG2組成,這3個(gè)時(shí)間段分別是tSYNC_SEG、tTSEG1和tTSEG2。所以,額定位周期tBit是3個(gè)時(shí)間段的和。
tBit=tSYNC_SEG+tTSEG1+tTSEG2
位周期中這些段都用整數(shù)個(gè)基本時(shí)間單位來表示。該時(shí)間單位叫時(shí)間份額TQ,時(shí)間份額的持續(xù)時(shí)間是CAN系統(tǒng)時(shí)鐘的一個(gè)周期tSCL,可從振蕩器時(shí)鐘周期tCLK取得。通過編程預(yù)分頻因數(shù)(波特率預(yù)設(shè)值BRP)可以調(diào)整CAN系統(tǒng)時(shí)鐘。具體如下:
tSCL=BRP×2tCLK=2BPR/fCLK
對(duì)CAN位定時(shí)計(jì)算的另一個(gè)很重要的時(shí)間段是同步跳轉(zhuǎn)寬度(SJW),持續(xù)時(shí)間是tSJW。SJW段并不是位周期的一段,只是定義了在重同步事件中被增長(zhǎng)或縮短的位周期的最大TQ數(shù)量。此外,CAN協(xié)議還允許用戶指定位采樣模式(SAM),分別是單次采樣和三次采樣模式(在3個(gè)采樣結(jié)果中選出1個(gè))。在單次采樣模式中,采樣點(diǎn)在TESG1段的末端。而三次采樣模式比單次采樣多取兩個(gè)采樣點(diǎn),它們?cè)赥SEG1段末端的前面,之間相差一個(gè)TQ。
上面所提到的BPR、SJW、SAM、TESG1、TESG2都可由用戶通過CAN控制器的內(nèi)裝中寄存器BTR0和BTR1來定義。具體如圖3所示。設(shè)置好BTR0和BTR1后,實(shí)際傳輸?shù)牟ㄌ芈史秶鸀椋?BR>最大=1/(tBit-tSJW),最小=1/(tBit+tSJW)
3.2 串口波特率檢測(cè)
當(dāng)串口設(shè)備是主機(jī)時(shí),如需檢測(cè)此時(shí)轉(zhuǎn)換裝置的串口波特率,首先可對(duì)主機(jī)的接收波特率(以9600波特為例)進(jìn)行設(shè)定,并在終端發(fā)送一個(gè)特定的字符(以回車符為例),這樣,主機(jī)根據(jù)接收到的字符信息就可以確定轉(zhuǎn)換裝置的通信波特率。回車符的ASCII值是0DH,在不同波特率下接收到的值如表2所列。
表2 不同波特率下接收的字節(jié)
波特率(bit/s) 接收字節(jié)(十六進(jìn)制) 波特率(bit/s) 接收字節(jié)(十六進(jìn)制)
1200 80 4800 E6
1800 F0 9600 0D
2400 78 19200 F*
3.3 串口流控制
此處講到的“流“指的是數(shù)據(jù)流。數(shù)據(jù)在兩個(gè)串口之間的傳輸時(shí),常常會(huì)出現(xiàn)丟失數(shù)據(jù)的現(xiàn)象。由于單片機(jī)緩沖區(qū)有限,如接收數(shù)據(jù)時(shí)緩沖區(qū)已滿,那么此時(shí)繼續(xù)發(fā)送來的數(shù)據(jù)就會(huì)丟失。而流控制能有效地解決該問題,當(dāng)接收端數(shù)據(jù)處理不過來時(shí),流控制系統(tǒng)就會(huì)發(fā)出“不再接收”的信號(hào),而使發(fā)送端停止發(fā)送,直到收到“可以繼續(xù)發(fā)送”的信號(hào)再發(fā)送數(shù)據(jù)。因此流控制可以控制數(shù)據(jù)傳輸?shù)倪M(jìn)程,防止數(shù)據(jù)丟失。常用的兩種流控制是硬件流控制(包括RTS/CTS、DTR/CTS等)和軟件流控制XON/XOFF(繼續(xù)/停止),下面僅就硬件流控制RTS/CTS加以說明。
采用硬件進(jìn)行流控制時(shí),串口終端RTS、CTS接到單片機(jī)的I/O口,通過置I/O口為1或0來接收和發(fā)出起停信號(hào)。數(shù)據(jù)終端設(shè)備(如計(jì)算機(jī))使用RTS來起始單片機(jī)發(fā)出的數(shù)據(jù)流,而單片機(jī)則用CTS來起動(dòng)和暫停來自計(jì)算機(jī)的數(shù)據(jù)流。實(shí)現(xiàn)這種硬件握手方式時(shí),在編程時(shí)根據(jù)接收端緩沖區(qū)的大小設(shè)置一個(gè)高位標(biāo)志和一個(gè)低位標(biāo)志,當(dāng)緩沖區(qū)內(nèi)數(shù)據(jù)量達(dá)到高位時(shí),就在接收端將CTS線置低(送邏輯0),而當(dāng)發(fā)送端的程序檢測(cè)到CTS為低后,就停止發(fā)送數(shù)據(jù),直到接收端緩沖區(qū)的數(shù)據(jù)量低于低位而將CTS置高為止。RTS則用來標(biāo)明接收設(shè)備有沒有準(zhǔn)確好接收數(shù)據(jù)。
3.4 CAN接收子程序
PeliCAN格式既可以發(fā)送標(biāo)準(zhǔn)幀也可以送擴(kuò)展幀,利用時(shí)鐘分頻寄存器中的CDR.7可以調(diào)協(xié)CAN模式(0-BasicCAN,1-PeliCAN),接收CAN數(shù)據(jù)時(shí),可根據(jù)幀信息中的FF位來判斷是標(biāo)準(zhǔn)幀還是擴(kuò)展幀,并且RTR位來判斷是遠(yuǎn)程幀還是數(shù)據(jù)幀。以下是CAN接收子程序:
;//////////////////////////////////////////////////////////////////
;//CAN數(shù)據(jù)接收/統(tǒng)一成2個(gè)字節(jié)ID的幀格式//
;///////////////////////////////////////////////////////////////////////
RECAN:
MOV R0,#C_RE ;單片機(jī)內(nèi)緩沖區(qū)起始地址
MOV DPTR,#RXBUF ;讀取并保存接收緩沖區(qū)的內(nèi)容
MOVX A,@DPTR ;讀取CAN緩沖區(qū)的2號(hào)字節(jié)
MOV @R0,A ;保存
JB ACC.7,EFF_RE ;FF位,0-SFF,1-EFF
MOV R2,#0
SJMP SFF_RE ;ID數(shù)目不同,截取“數(shù)據(jù)字節(jié)”的位置不同
EFF_RE:MOV R2,#2
SFF_RE:MOV R2,#2
SFF_RE:
JB ACC.6,EXIT_RECAN ;RTR位判斷,1-遠(yuǎn)程幀,則跳出
ANL A,#0FH
MOV R3,A ;這時(shí)截取中間4位是數(shù)據(jù)長(zhǎng)度
MOV C_NUM,A ;R3,R5中存放接收幀的長(zhǎng)度
RDATA0:
INC DPTR ;2個(gè)字節(jié)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則跳過兩個(gè)字節(jié)ID
JZ DRATA1
INC DPTR
INC DPTR
DATA1: ;數(shù)據(jù)字節(jié)
INC DPTR
INC R0
MOVX A,@DPTR
MOV @R0,A
DJNZ R3,RDATA1
EXIT_RECAN:
RET
4 結(jié)束語(yǔ)
計(jì)算機(jī)的微型化為測(cè)控儀表的智能化提供了必要的條件,使得帶微處理器的終端設(shè)備具備更好的數(shù)字通信能力。隨著越來越多智能終端的出現(xiàn),無論是對(duì)網(wǎng)絡(luò)的結(jié)構(gòu)、協(xié)議、實(shí)時(shí)性,還是適用性、靈活性、可靠性乃至成本都有了更高的要求,因此現(xiàn)場(chǎng)總線有著很好的發(fā)展前景。CAN總線的幀結(jié)構(gòu)擁有標(biāo)識(shí)ID,這使得設(shè)備網(wǎng)絡(luò)中擁有多臺(tái)網(wǎng)絡(luò)主機(jī)成為可能,即通過網(wǎng)絡(luò)主機(jī)可以監(jiān)控整個(gè)設(shè)備網(wǎng)絡(luò)的工作情況并作出相應(yīng)的控制決策。本裝置目前已開發(fā)完成,并在實(shí)際應(yīng)用中取得了非常好的效果。

文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

      9000px;">

          国产精品青草综合久久久久99| 欧美日韩国产系列| 亚洲免费观看高清| 亚洲国产一区二区a毛片| 日韩精品免费视频人成| 丝袜美腿亚洲色图| 欧美高清一级片在线| 欧美国产日韩a欧美在线观看| 亚洲一区在线看| 丁香五精品蜜臀久久久久99网站 | 午夜精品视频一区| 国产91色综合久久免费分享| 中文字幕免费一区| 欧洲一区二区三区在线| 欧美精品一区二区三区一线天视频| 中文字幕五月欧美| 精品一区二区三区免费| 在线观看免费成人| 午夜精品久久久久久久99水蜜桃 | 欧美不卡激情三级在线观看| 自拍偷拍亚洲激情| 国产电影一区二区三区| 51精品秘密在线观看| 国产精品久久一卡二卡| 精品视频全国免费看| 日韩免费电影网站| 日韩**一区毛片| 欧美三级乱人伦电影| 日韩限制级电影在线观看| 亚洲精品乱码久久久久久久久| 久久99精品一区二区三区| 日本一二三不卡| 欧美日韩成人在线一区| 国产a级毛片一区| 午夜久久久久久电影| 亚洲欧洲成人av每日更新| 精品三级在线看| 欧美无人高清视频在线观看| 亚洲综合免费观看高清完整版在线| 日韩一区二区视频| 日本韩国欧美一区| 欧美三级电影精品| 成人黄色小视频在线观看| 国产欧美一区二区精品仙草咪| 精品一区二区三区视频 | 久久精品一二三| 成人免费精品视频| 亚洲欧洲日韩在线| 国产精品911| 中文一区二区完整视频在线观看| 欧美在线看片a免费观看| 成人黄色在线视频| 国产福利一区在线观看| 久久www免费人成看片高清| 久久网站热最新地址| 国产成人精品免费一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产精品色哟哟网站| 久久一区二区视频| 久久综合九色综合97_久久久| 91精品在线免费| 欧美一区二区在线免费播放| 337p粉嫩大胆噜噜噜噜噜91av| 欧美精品粉嫩高潮一区二区| 欧美日韩午夜影院| 777奇米四色成人影色区| 欧美日韩免费电影| 日韩三区在线观看| 精品国产免费人成在线观看| 欧美精品一区二区三区很污很色的| 精品女同一区二区| 国产精品99久久久久| 成人综合婷婷国产精品久久蜜臀| 国产成a人无v码亚洲福利| 成人av第一页| 欧美视频第二页| 日韩精品一区在线观看| 欧美国产一区在线| 亚洲一区二区三区在线看| 美腿丝袜在线亚洲一区| 中文成人av在线| 亚洲欧美激情视频在线观看一区二区三区| 亚洲最新在线观看| 国产香蕉久久精品综合网| 欧美国产精品一区二区| 亚洲精品自拍动漫在线| 视频一区二区不卡| 国产成人免费在线视频| 99国产欧美久久久精品| 国产成人99久久亚洲综合精品| 欧美激情一区二区三区蜜桃视频| 亚洲欧美国产三级| 毛片一区二区三区| 91免费视频大全| 国模大尺度一区二区三区| 一卡二卡欧美日韩| 人人精品人人爱| 天天操天天色综合| 国产不卡在线视频| 欧美日韩国产大片| 久久综合久色欧美综合狠狠| 亚洲色图在线播放| 老司机免费视频一区二区| www.亚洲国产| 97精品久久久久中文字幕| 在线播放91灌醉迷j高跟美女| 国产欧美一区二区精品性| 日日夜夜免费精品| 色8久久人人97超碰香蕉987| 久久色.com| 日本午夜一区二区| 在线一区二区三区四区| 国产精品伦理一区二区| 狠狠色狠狠色综合| 337p亚洲精品色噜噜狠狠| 亚洲精品成人少妇| 成av人片一区二区| 国产无人区一区二区三区| 青青草视频一区| 欧美日韩精品福利| 亚洲小少妇裸体bbw| 色综合中文字幕国产 | 成人丝袜18视频在线观看| 91精品国产综合久久香蕉的特点 | 国产美女娇喘av呻吟久久| 日本午夜一本久久久综合| 国产成人av一区二区三区在线 | 国产精品视频免费| www国产成人免费观看视频 深夜成人网| 亚洲区小说区图片区qvod| 成人听书哪个软件好| 国产欧美精品一区二区色综合| 国产一区在线观看视频| 欧美电影免费观看完整版| 久久精品国产77777蜜臀| 欧美一级久久久| 久久99精品国产.久久久久| 日韩欧美一级在线播放| 精品国产青草久久久久福利| 另类小说图片综合网| 欧美大白屁股肥臀xxxxxx| 免费日韩伦理电影| 精品奇米国产一区二区三区| 韩国视频一区二区| 久久免费偷拍视频| 亚洲日本在线a| 91天堂素人约啪| 亚洲乱码精品一二三四区日韩在线| 91视频国产观看| 亚洲午夜在线视频| 欧美一级理论片| 国产精品资源网| 国产精品二区一区二区aⅴ污介绍| 成人av在线一区二区三区| 怡红院av一区二区三区| 欧美日韩成人激情| 国产麻豆成人传媒免费观看| 国产精品美女一区二区三区 | 日韩精品中文字幕一区 | 久久人人爽人人爽| av男人天堂一区| 午夜精品一区在线观看| 2021中文字幕一区亚洲| 91丨porny丨中文| 久久精品国产精品亚洲红杏| 欧美韩日一区二区三区| 3d动漫精品啪啪| 成人av先锋影音| 日韩vs国产vs欧美| 国产精品你懂的| 日韩欧美亚洲另类制服综合在线| gogo大胆日本视频一区| 久久成人免费电影| 亚洲综合另类小说| 国产视频一区在线观看| 91.麻豆视频| 色婷婷国产精品综合在线观看| 国产精品家庭影院| 在线电影欧美成精品| 北条麻妃国产九九精品视频| 日本成人在线视频网站| 日韩美女啊v在线免费观看| 精品美女被调教视频大全网站| 成人欧美一区二区三区小说| 日韩三级在线观看| 欧美日韩国产区一| 91看片淫黄大片一级| 丰满少妇久久久久久久| 国产一区二区三区四区五区入口| 欧美日韩国产一区| 91免费视频观看| 成人av电影在线网| 成人综合在线观看| 国产一区二区三区黄视频 | 一区二区三区久久| 国产日韩av一区| 欧美电影免费提供在线观看| 日韩一级精品视频在线观看| 欧美日韩视频第一区| 色狠狠一区二区|