嵌入式分享~IO相关1 ##
這里僅總結(jié)一下IO控制相關(guān)及這種總線等? ~持續(xù)更新
一、 單片機(jī)IO直接驅(qū)動(dòng)繼電器?
上圖是隨便找到的兩個(gè)不同型號(hào)的繼電器。繼電器就是個(gè)開(kāi)關(guān),這個(gè)開(kāi)關(guān)是由它內(nèi)部的線圈控制的,給線圈通電,繼電器就吸合,開(kāi)關(guān)就動(dòng)作了。絕大部分的繼電器反面都會(huì)有如下圖一樣的標(biāo)識(shí),看標(biāo)識(shí)也就能看出,下圖中1腳2腳之間是線圈,3腳和5腳在繼電器不動(dòng)作的時(shí)候是連一起的,當(dāng)1腳2腳上加電壓后,繼電器動(dòng)作,此時(shí)3腳就斷開(kāi)5腳,吸合到了4腳上去。
比如你要控制一條線的通斷,就可以把這條線故意搞斷以后,一端接到3腳,一端接到4腳,然后通過(guò)給線圈通電和斷電,就可以控制這條線的通斷了。我們通過(guò)單片機(jī)開(kāi)控制1腳2腳上的線圈通電就可以控制這個(gè)開(kāi)關(guān)的閉合與斷開(kāi)了。
線圈1腳和2腳加多大電壓呢?
這個(gè)問(wèn)題,需要看你用的繼電器的正面,比如藍(lán)色這個(gè)繼電器,最下面一行字為“SRD-05DCV-SL-C”,其中的“05DCV”就表示線圈上所需要的電壓值,在此表示需要直流5V電壓才能驅(qū)動(dòng)這個(gè)繼電器吸合。
前面我們說(shuō)過(guò)了,可以用單片機(jī)控制這個(gè)線圈上的電壓,你可以直接用兩只手拿上5V和GND兩條線直接通到繼電器線圈的兩個(gè)引腳,就會(huì)聽(tīng)到響聲了。
那用單片機(jī)怎么給他加電壓?我們知道,單片機(jī)引腳就可以輸出5V,是不是直接用單片機(jī)引腳連接繼電器線圈,就可以了呢?
答案當(dāng)然不是的!
下面我們來(lái)測(cè)試一下,用萬(wàn)用表測(cè)量一下這個(gè)線圈的電阻,如下圖所示這個(gè)繼電器的線圈上的電阻是67.3Ω,假設(shè)我們把這個(gè)線圈當(dāng)做一個(gè)電阻來(lái)看的話,在它兩端加上5V的電壓,歐姆定律用上一算,電流就是74mA左右。但是,我們單片機(jī)的普通引腳最大輸出10mA電流,大電流的引腳最大輸出20mA電流(具體的單片機(jī)輸出能力需要參照單片機(jī)的datasheet)。
通過(guò)上面的計(jì)算,雖然5V的單片機(jī)可以輸出5V的電壓,但是輸出電流能力有限,遠(yuǎn)遠(yuǎn)達(dá)不到驅(qū)動(dòng)繼電器的電流,所以無(wú)法直接驅(qū)動(dòng)繼電器。假如我們采用灌電流的連接方式,這樣很有可能直接燒壞單片機(jī)的IO口。
這時(shí)候我們就需要想辦法,想想怎么能通過(guò)小電流來(lái)控制大電流呢,此時(shí)我們應(yīng)該不叫容易想到的三極管,比如比較常用的S8050三極管,ICE最大允許電流是500mA,遠(yuǎn)遠(yuǎn)大于70mA,所以用S8050驅(qū)動(dòng)繼電器絕對(duì)是沒(méi)有問(wèn)題的。電路圖如下所示:
看上圖,ICE也就是從C流到E的電流,就是和繼電器線圈一條線的電流。NPN三極管,在這里就是個(gè)開(kāi)關(guān),單片機(jī)引腳輸出5V高電平,ICE就導(dǎo)通繼電器就會(huì)吸合;單片機(jī)引腳輸出0V低電平,ICE就截止,繼電器就不吸合。值得注意的是,剛才計(jì)算時(shí)候我們是吧線圈當(dāng)作了電阻,而實(shí)際它是線圈,線圈內(nèi)的電流不能突變,所以在斷開(kāi)的瞬間會(huì)形成反向電動(dòng)勢(shì),上圖中的二極管就是為了釋放這個(gè)反向電動(dòng)勢(shì)而設(shè)計(jì)的。
同理,電磁閥也是一種電阻很小功率很大的負(fù)載,也需要按照上述歐姆定律的方法,選擇合適的驅(qū)動(dòng)元件。
在更多的使用場(chǎng)景下,在同一個(gè)項(xiàng)目中可能需要驅(qū)動(dòng)多個(gè)繼電器,此時(shí)采用分立元件三極管來(lái)驅(qū)動(dòng)可能就會(huì)有寫(xiě)繁瑣了,此時(shí)可以采用一些驅(qū)動(dòng)芯片,比較常見(jiàn)的有達(dá)林頓管ULN2003、ULN2803。采用這樣的集成芯片驅(qū)動(dòng)可以讓電路變得簡(jiǎn)潔,還可以增加可靠性。如果需要更加保險(xiǎn)的考慮的話可以在輸入驅(qū)動(dòng)信號(hào)的地方采用光耦作為隔離。
whaosoft aiot?http://143ai.com???
二、常見(jiàn)內(nèi)部總線介紹
IIC
??? IIC(Inter-Integrated ? ? ? ?Circuit)總線是一種由PHILIPS公司開(kāi)發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I2C總線用兩條線(SDA和SCL)在總線和裝置之間傳遞信息,在微控制器和外部設(shè)備之間進(jìn)行串行通訊或在主設(shè)備和從設(shè)備之間的雙向數(shù)據(jù)傳送。I2C是OD輸出的,大部分I2C都是2線的(時(shí)鐘和數(shù)據(jù)),一般用來(lái)傳輸控制信號(hào)。
IIS
??? I2S(Inter-IC ? ? ? ?Sound ? ? ? ?Bus)是飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的一種總線標(biāo)準(zhǔn)。I2S有3個(gè)主要信號(hào):1.串行時(shí)鐘SCLK,也叫位時(shí)鐘,即對(duì)應(yīng)數(shù)字音頻的每一位數(shù)據(jù),SCLK有1個(gè)脈沖。2.幀時(shí)鐘LRCK,用于切換左右聲道的數(shù)據(jù)。LRCK為“1”表示正在傳輸?shù)氖亲舐暤赖臄?shù)據(jù),為“0”則表示正在傳輸?shù)氖怯衣暤赖臄?shù)據(jù)。3.串行數(shù)據(jù)SDATA,就是用二進(jìn)制補(bǔ)碼表示的音頻數(shù)據(jù)。有時(shí)為了使系統(tǒng)間能夠更好地同步,還需要另外傳輸一個(gè)信號(hào)MCLK,稱(chēng)為主時(shí)鐘,也叫系統(tǒng)時(shí)鐘(Sys ? ? ? ?Clock)。
SPI
??? SPI(Serial ? ? ? ?Peripheral ? ? ? ?Interface:串行外設(shè)接口);SPI是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應(yīng)用在EEPROM,FLASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。
??? SPI接口是以主從方式工作的,這種模式通常有一個(gè)主器件和一個(gè)或多個(gè)從器件,其接口包括以下四種信號(hào):
-
MOSI ? ? ? ? ? ?– 主器件數(shù)據(jù)輸出,從器件數(shù)據(jù)輸入
-
MISO – 主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出
-
SCLK – 時(shí)鐘信號(hào),由主器件產(chǎn)生
-
SS ? ? ? ? ? ??– 從器件使能信號(hào),由主器件控制
UART
??? UART(Universal ? ? ? ?Asynchronous Receiver ? ? ? ?Transmitter:通用異步收發(fā)器)。將由計(jì)算機(jī)內(nèi)部傳送過(guò)來(lái)的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù)流。將計(jì)算機(jī)外部來(lái)的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供計(jì)算機(jī)內(nèi)部使用并行數(shù)據(jù)的器件使用。在輸出的串行數(shù)據(jù)流中加入奇偶校驗(yàn)位,并對(duì)從外部接收的數(shù)據(jù)流進(jìn)行奇偶校驗(yàn)。在輸出數(shù)據(jù)流中加入啟停標(biāo)記,并從接收數(shù)據(jù)流中刪除啟停標(biāo)記。處理由鍵盤(pán)或鼠標(biāo)發(fā)出的中斷信號(hào)(鍵盤(pán)和鼠票也是串行設(shè)備)。可以處理計(jì)算機(jī)與外部串行設(shè)備的同步管理問(wèn)題。有一些比較高檔的UART還提供輸入輸出數(shù)據(jù)的緩沖區(qū)。常用TXD,RXD,/RTS,/CTS。
JTAG
??? JTAG ? ? ? ?(Joint Test Action Group ? ? ? ?聯(lián)合測(cè)試行動(dòng)小組)是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議(IEEE1149.1兼容),主要用于芯片內(nèi)部測(cè)試。標(biāo)準(zhǔn)的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為模式選擇、時(shí)鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。測(cè)試復(fù)位信號(hào)(TRST,一般以低電平有效)一般作為可選的第五個(gè)端口信號(hào)。一個(gè)含有JTAGDebug接口模塊的CPU,只要時(shí)鐘正常,就可以通過(guò)JTAG接口訪問(wèn)CPU的內(nèi)部寄存器和掛在CPU總線上的設(shè)備,如FLASH,RAM,內(nèi)置模塊的寄存器,象UART,Timers,GPIO等等的寄存器。
CAN
??? CAN全稱(chēng)為“Controller ? ? ? ?Area ? ? ? ?Network”,即控制器局域網(wǎng),是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。最初,CAN被設(shè)計(jì)作為汽車(chē)環(huán)境中的微控制器通訊,在車(chē)載各電子控制裝置ECU之 ? ? ? ?間交換信息,形成汽車(chē)電子控制網(wǎng)絡(luò)。比如:發(fā)動(dòng)機(jī)管理系統(tǒng)、變速箱控制器、儀表裝備、電子主干系統(tǒng)中,均嵌入CAN控制裝置。一個(gè)由CAN總線構(gòu)成的單一網(wǎng)絡(luò)中,理論上可以掛接無(wú)數(shù)個(gè)節(jié)點(diǎn)。實(shí)際應(yīng)用中,節(jié)點(diǎn)數(shù)目受網(wǎng)絡(luò)硬件的電氣特性所限制。例如,當(dāng)使用Philips ? ? ? ?P82C250作為CAN收發(fā)器時(shí),同一網(wǎng)絡(luò)中允許掛接110個(gè)節(jié)點(diǎn)。CAN ? ? ? ?可提供高達(dá)1Mbit/s的數(shù)據(jù)傳輸速率,這使實(shí)時(shí)控制變得非常容易。另外,硬件的錯(cuò)誤檢定特性也增強(qiáng)了CAN的抗電磁干擾能力。
SDIO
??? SDIO是SD型的擴(kuò)展接口,除了可以接SD卡外,還可以接支持SDIO接口的設(shè)備,插口的用途不止是插存儲(chǔ)卡。支持 ? ? ? ?SDIO接口的PDA,筆記本電腦等都可以連接象GPS接收器,Wi-Fi或藍(lán)牙適配器,調(diào)制解調(diào)器,局域網(wǎng)適配器,條型碼讀取器,FM無(wú)線電,電視接收 ? ? ? ?器,射頻身份認(rèn)證讀取器,或者數(shù)碼相機(jī)等等采用SD標(biāo)準(zhǔn)接口的設(shè)備。
GPIO
??? GPIO ? ? ? ?(General Purpose Input Output ? ? ? ?通用輸入/輸出)或總線擴(kuò)展器利用工業(yè)標(biāo)準(zhǔn)I2C、SMBus?或SPI?接口簡(jiǎn)化了I/O口的擴(kuò)展。當(dāng)微控制器或芯片組沒(méi)有足夠的I/O端口,或當(dāng)系統(tǒng) ? ? ? ?需要采用遠(yuǎn)端串行通信或控制時(shí),GPIO產(chǎn)品能夠提供額外的控制和監(jiān)視功能。
????每個(gè)GPIO端口可通過(guò)軟件分別配置成輸入或輸出。
三、?串口通信原理--232、422、485
1 串口通訊
????串口通訊(Serial Communication),是指外設(shè)和計(jì)算機(jī)間,通過(guò)數(shù)據(jù)信號(hào)線、地線等,按位進(jìn)行傳輸數(shù)據(jù)的一種通訊方式。
????串口是一種接口標(biāo)準(zhǔn),它規(guī)定了接口的電氣標(biāo)準(zhǔn),沒(méi)有規(guī)定接口插件電纜以及使用的協(xié)議。
????串口按電氣標(biāo)準(zhǔn)及協(xié)議來(lái)劃分,包括RS-232-C、RS-422、RS485等。
2 串口通訊的數(shù)據(jù)格式
????一個(gè)字符一個(gè)字符地傳輸,每個(gè)字符一位一位地傳輸,并且傳輸一個(gè)字符時(shí),總是以“起始位”開(kāi)始,以“停止位”結(jié)束,字符之間沒(méi)有固定的時(shí)間間隔要求。
????每一個(gè)字符的前面都有一位起始位(低電平),字符本身由7位數(shù)據(jù)位組成,接著字符后面是一位校驗(yàn)位(檢驗(yàn)位可以是奇校驗(yàn)、偶校驗(yàn)或無(wú)校驗(yàn)位),最后是一位或一位半或二位停止位,停止位后面是不定長(zhǎng)的空閑位,停止位和空閑位都規(guī)定為高電平。實(shí)際傳輸時(shí)每一位的信號(hào)寬度與波特率有關(guān),波特率越高,寬度越小,在進(jìn)行傳輸之前,雙方一定要使用同一個(gè)波特率設(shè)置。
3 通訊方式
????單工模式(Simplex Communication)的數(shù)據(jù)傳輸是單向的。通信雙方中,一方固定為發(fā)送端,一方則固定為接收端。信息只能沿一個(gè)方向傳輸,使用一根傳輸線。
????半雙工模式(Half Duplex)通信使用同一根傳輸線,既可以發(fā)送數(shù)據(jù)又可以接收數(shù)據(jù),但不能同時(shí)進(jìn)行發(fā)送和接收。數(shù)據(jù)傳輸允許數(shù)據(jù)在兩個(gè)方向上傳輸,但是,在任何時(shí)刻只能由其中的一方發(fā)送數(shù)據(jù),另一方接收數(shù)據(jù)。因此半雙工模式既可以使用一條數(shù)據(jù)線,也可以使用兩條數(shù)據(jù)線。半雙工通信中每端需有一個(gè)收發(fā)切換電子開(kāi)關(guān),通過(guò)切換來(lái)決定數(shù)據(jù)向哪個(gè)方向傳輸。因?yàn)橛星袚Q,所以會(huì)產(chǎn)生時(shí)間延遲,信息傳輸效率低些。
????全雙工模式(Full Duplex)通信允許數(shù)據(jù)同時(shí)在兩個(gè)方向上傳輸。因此,全雙工通信是兩個(gè)單工通信方式的結(jié)合,它要求發(fā)送設(shè)備和接收設(shè)備都有獨(dú)立的接收和發(fā)送能力。在全雙工模式中,每一端都有發(fā)送器和接收器,有兩條傳輸線,信息傳輸效率高。
顯然,在其它參數(shù)都一樣的情況下,全雙工比半雙工傳輸速度要快,效率要高。
4 偶校驗(yàn)與奇校驗(yàn)
????在標(biāo)準(zhǔn)ASCII碼中,其最高位(b7)用作奇偶校驗(yàn)位。所謂奇偶校驗(yàn),是指在代碼傳送過(guò)程中用來(lái)檢驗(yàn)是否出現(xiàn)錯(cuò)誤的一種方法,一般分奇校驗(yàn)和偶校驗(yàn)兩種。奇校驗(yàn)規(guī)定:正確的代碼一個(gè)字節(jié)中1的個(gè)數(shù)必須是奇數(shù),若非奇數(shù),則在最高位b7添1;偶校驗(yàn)規(guī)定:正確的代碼一個(gè)字節(jié)中1的個(gè)數(shù)必須是偶數(shù),若非偶數(shù),則在最高位b7添1。
5 停止位
????停止位是按長(zhǎng)度來(lái)算的。串行異步通信從計(jì)時(shí)開(kāi)始,以單位時(shí)間為間隔(一個(gè)單位時(shí)間就是波特率的倒數(shù)),依次接受所規(guī)定的數(shù)據(jù)位和奇偶校驗(yàn)位,并拼裝成一個(gè)字符的并行字節(jié);此后應(yīng)接收到規(guī)定長(zhǎng)度的停止位“1”。所以說(shuō),停止位都是“1”,1.5是它的長(zhǎng)度,即停止位的高電平保持1.5個(gè)單位時(shí)間長(zhǎng)度。一般來(lái)講,停止位有1,1.5,2個(gè)單位時(shí)間三種長(zhǎng)度。
6 波特率
????波特率就是每秒鐘傳輸?shù)臄?shù)據(jù)位數(shù)。
????波特率的單位是每秒比特?cái)?shù)(bps),常用的單位還有:每秒千比特?cái)?shù)Kbps,每秒兆比特?cái)?shù)Mbps。串口典型的傳輸波特率600bps,1200bps,2400bps,4800bps,9600bps,19200bps,38400bps。
????PLC/PC與稱(chēng)重儀表通訊時(shí),最常用的波特率是9600bps,19200bps。PLC/PC或儀表與大屏幕通訊時(shí),最常用的波特率是600bps。
7 典型的串口通訊標(biāo)準(zhǔn)
????EIA RS232(通常簡(jiǎn)稱(chēng)“RS232”): 1962年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)制定。
????EIA RS485(通常簡(jiǎn)稱(chēng)“RS485”): 1983年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)制定。
8 RS232串口
????RS232是計(jì)算機(jī)與通信工業(yè)應(yīng)用中最廣泛一種串行接口。它以全雙工方式工作,需要地線、發(fā)送線和接收線三條線。RS232只能實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的通信方式。
8.1 RS232串口缺點(diǎn)
?● 接口信號(hào)電平值較高,接口電路芯片容易損壞。
?● 傳輸速率低,最高波特率19200bps。
?● 抗干擾能力較差。
?● 傳輸距離有限,一般在15m以?xún)?nèi)。
?● 只能實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的通訊方式。
8.2 RS232串口接口定義
????RXD:接收數(shù)據(jù),TXD:發(fā)送數(shù)據(jù),GND/SG:信號(hào)地。
8.3 電腦DB9針接口定義
????電腦DB9針接口是常見(jiàn)的RS232串口,其引腳定義如下:
??2號(hào)腳:RXD(接收數(shù)據(jù))
??3號(hào)腳:TXD(發(fā)送數(shù)據(jù))
??5號(hào)腳:SG或GND(信號(hào)地)
??其它腳:我們不用
????電腦RS232串口與儀表串口連接圖:
????在9針串口接頭中,公頭和母頭的管腳定義順序是不一樣,這一點(diǎn)需要特別注意。那么,這些管腳都有什么作用呢?9針串口和25針串口常用管腳的功能說(shuō)明如下圖所示:
9 RS485串口
9.1 RS485串口特點(diǎn)
● RS485采用平衡發(fā)送和差分接收,具有良好的抗干擾能力,信號(hào)能傳輸上千米。
● RS485有兩線制和四線制兩種接線。采用四線制時(shí),只能實(shí)現(xiàn)點(diǎn)對(duì)多的通訊(即只能有一個(gè)主設(shè)備,其余為從設(shè)備)。四線制現(xiàn)在很少采用,現(xiàn)在多采用兩線制接線方式。
● 兩線制RS485只能以半雙式方式工作,收發(fā)不能同時(shí)進(jìn)行。
● RS485在同一總線上最多可以接32個(gè)結(jié)點(diǎn),可實(shí)現(xiàn)真正的多點(diǎn)通訊,但一般采用的是主從通信方式,即一個(gè)主機(jī)帶多個(gè)從機(jī)。
● 因RS485接口具有良好的抗干擾能力,長(zhǎng)的傳輸距離和多站能力等優(yōu)點(diǎn)使其成為首選的串行接口。
9.2?RS485串口接口定義
????A或Data+(D+)或+:信號(hào)正;
????B或Data-(D-)或-:信號(hào)負(fù)。
9.3 計(jì)算機(jī)與RS485儀表通訊
????計(jì)算機(jī)自帶的串口只有RS232,沒(méi)有RS485,如果計(jì)算機(jī)要與RS485串口的儀表進(jìn)行通訊,必須使用串口轉(zhuǎn)換器或裝上RS485串口轉(zhuǎn)換卡后才能進(jìn)行通訊。
9.4 RS485串口的終端電阻
● 一般情況下不需要增加終端電阻,只有在RS485通信距離超過(guò)100米的情況下,要在RS485通訊的開(kāi)始端和結(jié)束端增加終端電阻,RS485典型終端電阻是120歐。
● 終端電阻是為了消除在通信電纜中的信號(hào)反射在通信過(guò)程中,有兩種信號(hào)因?qū)е滦盘?hào)反射:阻抗不連續(xù)和阻抗不匹配。
????阻抗不連續(xù),信號(hào)在傳輸線末端突然遇到電纜阻抗很小甚至沒(méi)有,信號(hào)在這個(gè)地方就會(huì)引起反射。消除這種反射的方法,就必須在電纜的末端跨接一個(gè)與電纜的特性阻抗同樣大小的終端電阻,使電纜的阻抗連續(xù)。由于信號(hào)在電纜上的傳輸是雙向的,因此,在通訊電纜的另一端可跨接一個(gè)同樣大小的終端電阻。
????引起信號(hào)反射的另一原因是數(shù)據(jù)收發(fā)器與傳輸電纜之間的阻抗不匹配。這種原因引起的反射,主要表現(xiàn)在通訊線路處在空閑方式時(shí),整個(gè)網(wǎng)絡(luò)數(shù)據(jù)混亂。要減弱反射信號(hào)對(duì)通訊線路的影響,通常采用噪聲抑制和加偏置電阻的方法。在實(shí)際應(yīng)用中,對(duì)于比較小的反射信號(hào),為簡(jiǎn)單方便,經(jīng)常采用加偏置電阻的方法。
10 串口通訊硬件常見(jiàn)的注意事項(xiàng)
● 通訊電纜端子一定接牢,不可有任何松動(dòng),否則,可能會(huì)燒壞儀表或上位機(jī)的通訊板。
● 不可帶電拔插通訊端子,否則,可能會(huì)燒壞儀表或上位機(jī)的通訊板,一定要關(guān)閉儀表電源后才能去拔插通訊端子或接通訊線。
● 不可帶電拔插通訊端子,否則,可能會(huì)燒壞儀表或上位機(jī)的通訊板,一定要關(guān)閉儀表電源后才能去拔插通訊端子或接通訊線。
● 通訊用的屏蔽電纜最好選用雙層隔離型屏蔽電纜,其次選用單層屏蔽電纜,最好不要選用無(wú)屏蔽層的電纜,且電纜屏蔽層一定要能完全屏蔽,有些質(zhì)量差的電纜,屏蔽層很松散,根本起不到屏蔽的作用。單層屏蔽的電纜屏蔽層應(yīng)一端接地,雙層屏蔽的電纜屏蔽層其外層(含鎧裝)應(yīng)兩端接地,內(nèi)層屏蔽則應(yīng)一端接地。
● 儀表使用RS232通訊時(shí),通訊電纜長(zhǎng)度不得超過(guò)15米。
● 一般RS485協(xié)議的接頭沒(méi)有固定的標(biāo)準(zhǔn),可能根據(jù)廠家的不同引腳順序和管腳功能可能不盡相同,用戶(hù)可以查閱相關(guān)產(chǎn)品RS485的引腳圖。
● RS485通訊電纜最好選用阻阬匹配、低衰減的RS485專(zhuān)用通訊電纜(雙絞線),不要使用普通的雙絞電纜或質(zhì)量較差的通訊電纜。因?yàn)槠胀娎|或質(zhì)量差的通訊電纜,可能阻抗不匹配、衰減大、絞合度不夠、屏蔽層太松散,這樣會(huì)導(dǎo)致干擾將非常大,會(huì)造成通訊不暢,甚至通訊不上。
● 儀表使用RS485通訊時(shí),每臺(tái)儀表必須手牽手地串下去,不可以有星型連接或者分叉,如果有星型連接或者分叉,干擾將非常大,會(huì)造成通訊不暢,甚至通訊不上。
● 485總線結(jié)構(gòu)理論上傳輸距離達(dá)到1200米,一般是指通訊線材優(yōu)質(zhì)達(dá)標(biāo),波特率9600,只有一臺(tái)485設(shè)備才能使得通訊距離達(dá)到1200米,而且能通訊并不代表每次通訊都正常,所以通常485總線實(shí)際的穩(wěn)定通訊距離遠(yuǎn)遠(yuǎn)達(dá)不到1200米。負(fù)載485設(shè)備多,線材阻抗不同時(shí),通訊距離更短。
● 儀表使用RS485通訊時(shí),必要時(shí),請(qǐng)接入終端電阻,以增強(qiáng)系統(tǒng)的抗干擾性,典型的終端電阻阻值是120歐。
11 串口通訊軟件設(shè)置要點(diǎn)
11.1 有關(guān)通訊的一些基本概念
● 主機(jī)與從機(jī):在通訊系統(tǒng)中起主要作用、發(fā)布主要命令的稱(chēng)為主機(jī),接受命令的稱(chēng)為從機(jī)。
● 連續(xù)方式:指主機(jī)不需要發(fā)布命令,從機(jī)就能自動(dòng)地向主機(jī)發(fā)送數(shù)據(jù)。
● 指令方式:指主機(jī)向從機(jī)發(fā)布命令,從機(jī)根據(jù)指令執(zhí)行動(dòng)作,并將結(jié)果“應(yīng)答”給主機(jī)的模式。
● 輸出數(shù)據(jù)類(lèi)型:指在連續(xù)方式通訊時(shí),從機(jī)輸出給主機(jī)的數(shù)據(jù)類(lèi)型。
● 通訊協(xié)議:指主機(jī)與從機(jī)通訊時(shí),按哪一種編碼規(guī)則來(lái)通訊。
● 波特率:主從機(jī)之間通訊的速度。
● 數(shù)據(jù)位:每次傳輸數(shù)據(jù)時(shí),數(shù)據(jù)由幾位組成。
● 校驗(yàn)位:數(shù)據(jù)傳輸錯(cuò)誤檢測(cè),可以是奇校驗(yàn)、偶校驗(yàn)或無(wú)校驗(yàn)。
● 地址:每一臺(tái)從機(jī)的編號(hào)。
11.2 主從機(jī)之間通訊設(shè)置要點(diǎn)
● 要點(diǎn)一:主/從RS232/485硬件有無(wú)設(shè)置正確,通訊線有無(wú)接對(duì)。有些通訊板卡是RS422與RS485共用的,依靠板上跳線來(lái)實(shí)現(xiàn)的,有些儀表RS232/485也需要通訊跳線來(lái)實(shí)現(xiàn)。
● 要點(diǎn)二:主機(jī)上的通訊端口有無(wú)設(shè)置正確;超時(shí)(一般設(shè)置為2s)、通訊延時(shí)(一般設(shè)置為5~20ms)、ACK信號(hào)延時(shí)(一般設(shè)置為0ms)有無(wú)設(shè)置正確。
● 要點(diǎn)三:主/從機(jī)通訊協(xié)議有無(wú)選擇正確。
● 要點(diǎn)四:主/從機(jī)波特率有無(wú)選擇正確。
● 要點(diǎn)五:主/從機(jī)數(shù)據(jù)位有無(wú)選擇正確。數(shù)據(jù)位可以選擇7位,8位。
● 要點(diǎn)六:主/從機(jī)校驗(yàn)位有無(wú)選擇正確。校驗(yàn)位一般可選擇偶校驗(yàn)、奇校驗(yàn)、無(wú)校驗(yàn)。
● 要點(diǎn)七:主/從機(jī)停止位有無(wú)選擇正確。停止位可以選擇1位、1.5位還是2位。
● 要點(diǎn)八:從機(jī)地址有無(wú)選擇正確。
● 要點(diǎn)九:主/從機(jī)的通訊方式有無(wú)選擇正確。
????進(jìn)行通訊測(cè)試的時(shí)候經(jīng)常會(huì)進(jìn)行線路測(cè)試,測(cè)試所用的串口線是否可用,方法如下:
1. 把串口線接到不同的串口,用串口調(diào)試工具從一個(gè)串口發(fā)數(shù)據(jù),另一個(gè)能正常收到說(shuō)明串口線是OK的。
2. 把串口線的一端短接(用金屬把2,3號(hào)腳連通),用萬(wàn)用表測(cè)另一端的2,3號(hào)如果正常的話會(huì)有嘀嘀的短接報(bào)警聲。
總結(jié)
以上是生活随笔為你收集整理的嵌入式分享~IO相关1 ##的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 汉字转拼音(工具类)
- 下一篇: 通达信交易接口的解决方法是什么?