freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于rs485多機(jī)通信的軟件編程與系統(tǒng)調(diào)試畢業(yè)設(shè)計(jì)-資料下載頁(yè)

2025-06-27 18:33本頁(yè)面
  

【正文】 00無(wú)效 波特率 01—無(wú)效 b/s 10—7 位000 110 11—8 位001 150 停止位010 300 0—1 位011 600 1—2 位100 1200 奇偶校驗(yàn)101 2400 00—無(wú)110 4800 01—奇校驗(yàn)111 9600 10—無(wú)11—偶校驗(yàn)功能:實(shí)現(xiàn)由 port 指定的 I/O 接口上進(jìn)行的各種異步通信。說(shuō)明:在使用串行口進(jìn)行通行之前,必須對(duì)它初始化。函數(shù)中的 3 個(gè)參數(shù)意義如下所示。注意,bios()總是返回一個(gè) 16 位的二進(jìn)制數(shù)值,它通常反映了串行口某些重要的狀態(tài)信息。返回值的高 8 位字節(jié)是描述線路狀態(tài)位的;返回值的低 8 位隨 cmd 而定,常用于描述調(diào)制器的狀態(tài)。cmd=1 時(shí),低 8 位返回值是原發(fā)送的字符;cmd=2 時(shí),低 8位返回的是由串行口收的字符;其他情況下,cmd 分別為 0,3 時(shí)低 8 位含義如表 43 所示。表 43 Bios()返回值高、低 8 位的意義高 8 位 低 8 位位 含義 位 含義15 超時(shí)出錯(cuò) 7 線路信號(hào)被檢測(cè)14 發(fā)送移位寄存器空 6 振鈴指示13 發(fā)送保持寄存器空 5 數(shù)據(jù)裝置就緒12 間斷檢測(cè)錯(cuò)誤 4 清除發(fā)送11 接收(幀)格式錯(cuò)誤 3 線路信號(hào)變化10 接收奇偶錯(cuò)誤 2 脈沖后沿振鈴檢測(cè)D7 D6 D5 D4 D3 D2 D1 D0249 接收重疊錯(cuò)誤 1 數(shù)據(jù)裝置就緒變化8 接收數(shù)據(jù)就緒 0 清除發(fā)送信號(hào)變化利用 bios()函數(shù)采用查詢方式實(shí)現(xiàn)從串行口 1 發(fā)送一個(gè)字符功能的子函數(shù)sport()如下:void sport(char ch){ while(!(bios(3, 0, 0)amp。0x2022)){if (bios (1, ch, 0)amp。0x8000){ printf(“超時(shí)錯(cuò)誤 \ n”)。 exit (1)。 }} }利用 bios()函數(shù)接收字符的功能,采用查詢方式實(shí)現(xiàn)從串行口 1 接收一個(gè)字符的子函數(shù) rport()的定義如下:rport( ){ int a。 while (!(bios (3, 0, 0)amp。0x0100)){ if (kbhit( )){ getch( )。 exit( 1)。 } a=bios(2, 0, 0)amp。0x00ff。 return (a)。}}該函數(shù)不斷查詢“數(shù)據(jù)準(zhǔn)備就緒”位,若為 1,說(shuō)明串口收到了一個(gè)字符的數(shù)據(jù);否則,用按下任一鍵退出程序的方法避免程序陷入死循環(huán)。這兩個(gè)函數(shù)將作為后面發(fā)送和接收文件程序中的子函數(shù)被反復(fù)調(diào)用 [3]。25 1 PC 機(jī)通信程序設(shè)計(jì) PC 機(jī)通信程序采用 C 語(yǔ)言編程。主程序按照通信協(xié)議的要求,首先完成 8250 的初始化,以確定波特率和信息幀格式。然后根據(jù)鍵入的地址碼,呼叫從機(jī),發(fā)出聯(lián)絡(luò)信號(hào)。呼叫成功后,輸入命令,若輸入的是 S 命令,則表示要求單片機(jī)向主機(jī)發(fā)送數(shù)據(jù),因此,PC 機(jī)調(diào)用 receivef 子程序準(zhǔn)備接收從機(jī)發(fā)來(lái)的數(shù)據(jù),并存入盤上指定的文件中去。若輸入的是 R 命令,則表示主機(jī)要求從機(jī)準(zhǔn)備接收信息,因此,PC 機(jī)調(diào)用 sendf 子程序?qū)?dāng)前盤上的指定文件發(fā)送給從機(jī)。PC 機(jī)通信程序框圖如圖 43 所示 [3]:開始8250 初始化延時(shí)發(fā)送地址碼呼叫成功否?是從機(jī)發(fā)送?調(diào)接收文件子程序調(diào)發(fā)送文件子程序結(jié)束發(fā)送命令NYN Y(a)26 sendf打開文件發(fā)送字節(jié)數(shù)接收應(yīng)答信號(hào)發(fā)數(shù)據(jù)及累加和取文件句柄正確否?關(guān)閉文件NY(b)receivef建立文件收總字節(jié)數(shù)發(fā)“00”收數(shù)據(jù)及累加和發(fā)“FF”正確否?關(guān)閉文件NY(c)圖 43 PC 機(jī)通信程序框圖PC 機(jī)通信的主程序流程圖如圖 43(a)所示。PC 機(jī)發(fā)送子程序流程圖如圖 43(b)所示。PC 機(jī)接收子程序流程圖如圖 43(c)所示。 80C51 單片機(jī)通信程序設(shè)計(jì) 單片機(jī)的數(shù)據(jù)通信由串行口完成,定時(shí)器 TI 作為波特率發(fā)生器,其波特率要與 PC 機(jī)一致。數(shù)據(jù)的傳送格式為 1 位起始位、8 位數(shù)據(jù)位、作為地址/數(shù)據(jù)控制位的第 9 位和 1位停止位。采用中斷方式發(fā)送和接收數(shù)據(jù),定時(shí)器 TI 設(shè)置為工作模式 2,串行口設(shè)置為工作方式 3,由第 9 位判斷地址碼或數(shù)據(jù)。當(dāng)某臺(tái)單片機(jī)與 PC 機(jī)發(fā)出的地址碼一致時(shí),就發(fā)出應(yīng)答信號(hào)給 PC 機(jī),而其他單片機(jī)則不發(fā)應(yīng)答信號(hào),這樣在某一時(shí)刻 PC 機(jī)只與一臺(tái)單片機(jī)傳輸信息。這里給出 8051 主程序完成串行口和中斷的初始化后,則等待中斷,以及單片機(jī)中斷方式接收和發(fā)送數(shù)據(jù)的中斷服務(wù)程序。單片機(jī)主程序流程圖和中斷服務(wù)程序流程圖分別如圖 44 和 45 所示 [3]:27主程序開始定時(shí)器初始化,設(shè)置波特率初始化串行口控制寄存器開串行口中斷等待圖 44 下位單片機(jī)主程序流程圖28中斷服務(wù)程序是地址嗎?本機(jī)地址?發(fā)送命令?發(fā)字節(jié)數(shù)發(fā)回地址碼收累加和 發(fā)累加和收字節(jié)數(shù)發(fā)送數(shù)據(jù)并計(jì)算累加和接收數(shù)據(jù)并計(jì)算累加和發(fā)“FF”SM2=0發(fā)“00”SM2=1中斷返回正確否? 正確否?NNN NYYYY圖 45 單片機(jī)中斷服務(wù)程序流程圖29 程序調(diào)試 PC 機(jī)通信程序的調(diào)試此上位機(jī)采用的是查詢方式,其調(diào)試是在 keil C 里進(jìn)行的。其步驟為:(1)新建工程(2)工程名30(3)選單片機(jī)(4)新建一個(gè)文件(5)導(dǎo)入文件到工程31(6)編譯由于 keil C 里沒(méi)有包括這個(gè)函數(shù)庫(kù),則調(diào)不出來(lái)。32 80C51 單片機(jī)通信程序的調(diào)試此下位單片機(jī)采用的是中斷方式。下位單片機(jī)程序調(diào)試成功。33第五章 系統(tǒng)可靠性分析 串行通信可靠性評(píng)測(cè)指標(biāo)通信的目的是要把消息正確而迅速地傳送到受信者,因此衡量傳輸質(zhì)量的指標(biāo)有兩個(gè):一是有效性;二是可靠性。有效性是指在一定條件下,單位時(shí)間內(nèi)所傳輸?shù)男畔⒘吭蕉嘣胶茫磦鬏斝室?。這主要是和傳輸介質(zhì)有關(guān),只要采用較好質(zhì)量的傳輸介質(zhì)即可解決??煽啃允侵笖?shù)據(jù)信息傳輸?shù)目煽砍潭?。由于傳輸電路不可能十分理想,加之存在干擾,以及信號(hào)失真等原因,因而傳輸中產(chǎn)生錯(cuò)誤是不可避免的。我們希望傳輸中出現(xiàn)的錯(cuò)誤越少越好,即可靠性要高??煽啃杂谜`碼率來(lái)衡量。當(dāng)所傳送的二進(jìn)制序列無(wú)限長(zhǎng)時(shí),被傳錯(cuò)的碼元數(shù)與所傳碼元總數(shù)的比值為誤碼率,即二進(jìn)制碼元在傳輸系統(tǒng)中被傳錯(cuò)的概率。設(shè)被傳錯(cuò)的碼元數(shù)為 N e,所傳二進(jìn)制碼元總數(shù)為 N,則誤碼率 P e 為:P e=N e/N對(duì)可靠性的要求,因通信系統(tǒng)的任務(wù)不同而有所不同,不能籠統(tǒng)地說(shuō)誤碼率越低越好。在傳輸速率一定的條件下,誤碼率越低,設(shè)備就越復(fù)雜。因此,在確定誤碼率指標(biāo)時(shí),要根據(jù)具體情況具體確定。對(duì)傳輸系統(tǒng)來(lái)說(shuō),要在滿足可靠性要求的前提下,盡量提高傳輸效率 [8]。 程序跳飛而造成總線沖突RS485 通信多用在主從式多機(jī)通信中,但其作為一種半雙工的通信方式,在一條通信電纜上掛許多設(shè)備時(shí),一定要保證在總線上只有一臺(tái)設(shè)備處于發(fā)送狀態(tài),其他設(shè)備一定要處于接收狀態(tài);而一旦同時(shí)兩臺(tái)設(shè)備都處于發(fā)送狀態(tài),必然會(huì)出現(xiàn)總線沖突的現(xiàn)象。在工業(yè)控制中,設(shè)備大部分工作在強(qiáng)干擾的環(huán)境下,若僅用一條 I/O 口線控制 RS485 轉(zhuǎn)換器的收發(fā)狀態(tài),當(dāng)程序?qū)⑥D(zhuǎn)換器控制端置“1”即轉(zhuǎn)入發(fā)送狀態(tài)后出現(xiàn)程序跳飛的情況,那么關(guān)閉發(fā)送口的指令就有可能不會(huì)被執(zhí)行,其它設(shè)備要發(fā)送數(shù)據(jù)時(shí),會(huì)導(dǎo)致總線沖突,從而也使得整個(gè)總線無(wú)法正常工作。解決的關(guān)鍵是一定要控制好各臺(tái)設(shè)備的接收與發(fā)送狀態(tài),即 RS485 接口器的收發(fā)狀態(tài),要實(shí)現(xiàn)這種控制解決的方案是采取單穩(wěn)電路精確定時(shí),如圖 51 所示。34RST3TRIG+4TRIG5Cext1Rext/Cext2Q 6Q 7ACD4538RCTXD 位MAX485位位位+5V圖 51 單穩(wěn)延時(shí)電路它能夠偵測(cè)到數(shù)據(jù)包到來(lái),并及時(shí)將發(fā)送器由接收狀態(tài)轉(zhuǎn)為發(fā)送狀態(tài),等到數(shù)據(jù)包發(fā)完后,發(fā)送器又自動(dòng)關(guān)閉轉(zhuǎn)為接收狀態(tài)。圖 51 所示的電路是用一個(gè)精密單穩(wěn)態(tài)定時(shí)器CD4538 與外部電阻電容分離元件構(gòu)成。圖 51 中 5 端是單穩(wěn)態(tài)定時(shí)器的低電平有效的觸發(fā)端,它與單片機(jī)或 PC 機(jī)的 TXD 端相連, 6 端是單穩(wěn)態(tài)定時(shí)器的輸出端,它接向MAX485 的控制端。當(dāng)一幀數(shù)據(jù)的第一個(gè)數(shù)據(jù)起始位下降沿到來(lái),觸發(fā)單穩(wěn)態(tài)定時(shí)器并使其進(jìn)入暫態(tài),進(jìn)而在 6 端輸出高電平使發(fā)送器處于發(fā)送狀態(tài),輸出高電平的時(shí)間則由R 與 C 決定,調(diào)節(jié) R 與 C 則可將時(shí)間控制在確保所有數(shù)據(jù)發(fā)完后關(guān)上發(fā)送器并使其處于接收狀態(tài),時(shí)序如圖 52 所示。TXD 位位位 D0 D1 D2 D3 D4 D5 D6 D7 位位位 位位位位MAX485位位位位位圖 52 單片機(jī)串行口發(fā)送端 TXD 上的信號(hào)與 MAX485 輸入端時(shí)序關(guān)系這樣即使當(dāng)軟件由于干擾而出現(xiàn)跳飛的狀況,也可保證一段時(shí)間后發(fā)送器自動(dòng)關(guān)閉,從而保證總線正常工作 [10]。 失效保護(hù) RS 485 標(biāo)準(zhǔn)規(guī)定接收器門限為177。200 mV,這樣規(guī)定能夠提供比較高的噪聲抑制能力,但也帶來(lái)了一個(gè)問(wèn)題:當(dāng)總線電壓在士 200 mV 中間時(shí)接收器輸出狀態(tài)不確定。由于 UART以一個(gè)前導(dǎo)“0”觸發(fā)一次接收動(dòng)作,所以接收器的不定態(tài)可能會(huì)使 UART 錯(cuò)誤地接收一些數(shù)據(jù),導(dǎo)致系統(tǒng)誤操作。當(dāng)總線空閑、開路或短路時(shí)都可能出現(xiàn)兩線電壓差低于 200 35mV 的情況,必須采取一定措施避免接收器處于不定態(tài)。傳統(tǒng)的作法是給總線加偏置,當(dāng)總線空閑或開路時(shí),利用偏置電阻將總線偏置在一個(gè)確定狀態(tài)(差分電壓200 m V),但這種方法仍然不能解決總線短路問(wèn)題。為此,有些器件制造商將接收門限移到 200 mV/ 50 mV,巧妙解決了這個(gè)問(wèn)題。例如 Maxim 公司 MAX3080 系列 RS485 接口,不但省去了外部偏置電阻,而且解決了總線短路時(shí)的失效保護(hù)問(wèn)題 [5]。 通信協(xié)議提高通信可靠性在數(shù)據(jù)傳輸過(guò)程中,每組數(shù)據(jù)都包含著特殊的意義,這就是通信協(xié)議。主、分機(jī)之間必須要有協(xié)議,這個(gè)協(xié)議是以通信數(shù)據(jù)的正確性為前提的,而數(shù)據(jù)傳輸?shù)恼_與否又完全決定于傳輸途徑,即傳輸線。也就是說(shuō)保證傳輸線狀態(tài)穩(wěn)定與通信協(xié)議有直接聯(lián)系。 t 0 t 1 t 2 t 3t 0t 0 t 1t 1t 2t 2t 3t 3uuu( a )( b )( c )t 0 t 1 t 2 t 3t 0t 0 t 1t 1t 2t 2t 3t 3uuu( a )( b )( c )t 4 t 5t 4t 4t 5t 5圖 53 總線狀態(tài)時(shí)序圖 圖 54 通信延時(shí)作用圖   在主從式通信系統(tǒng)中,把數(shù)據(jù)傳輸過(guò)程劃分成幾個(gè)階段來(lái)分析,如圖 53 所示。在圖53(a)中,t0t1 為主機(jī)向分機(jī)發(fā)送命令時(shí)間。在 t1 時(shí)刻,主機(jī)將差動(dòng)輸出狀態(tài)轉(zhuǎn)換成輸入狀態(tài)。在圖 53(b)中,t2 之后的時(shí)間為分機(jī)向主機(jī)傳送數(shù)據(jù)階段,分機(jī)由輸入狀態(tài)變成輸出狀態(tài)。由于單片機(jī)多機(jī)通信大多采用異步串行方式,所以發(fā)送數(shù)據(jù)后的 TI 置位和接收機(jī) RI 的置位時(shí)間有一段時(shí)間差,而且接收機(jī)在轉(zhuǎn)換到輸出狀態(tài)前要有一段圖 53 圖 54數(shù)據(jù)處理時(shí)間,這兩段時(shí)間加起來(lái)不可忽視。在圖 53(c)中,t1t2 即為這段時(shí)間,這時(shí)串行通信總線處于懸浮狀態(tài),極易拾取空間干擾信號(hào),這時(shí)主機(jī)與另外的分機(jī)可能會(huì)同時(shí)得到一個(gè)無(wú)規(guī)則的數(shù)據(jù),對(duì)分機(jī)而言可能是錯(cuò)誤指令,造成錯(cuò)誤反應(yīng)。為此,在通信協(xié)議中加入延時(shí)階段,來(lái)解決此問(wèn)題。如圖 54 所示:在圖 54(a)中,t1t3 為延時(shí)階段;在36圖 54(b)中 t2t4 為分機(jī)的延時(shí)階段;圖 54(c)中,t1t2 為分機(jī)的反應(yīng)時(shí)間。延時(shí)時(shí)間 T 的大小可按分機(jī)接到主機(jī)命令后的最長(zhǎng)反應(yīng)時(shí)間的 2 倍來(lái)計(jì)算。延時(shí)階段的作用可用圖 54(c)來(lái)分析。在圖 54(c)中,主機(jī)控制數(shù)據(jù)總線的時(shí)間由 t1 延長(zhǎng)到 t3,分機(jī)的反應(yīng)時(shí)刻為 t2,但分機(jī)有效數(shù)據(jù)從延時(shí)后的 t4 時(shí)刻開始,這樣在通信總線上有主機(jī)和某臺(tái)分機(jī)同時(shí)控制的一段時(shí)間即 t2t3 的時(shí)間段。由于主機(jī)和分機(jī)對(duì)總線控制的方向相同,所以不會(huì)對(duì)這兩臺(tái)機(jī)器的硬件造成影響,而且在 t1t2 階段,總線一直處于低阻狀態(tài),不會(huì)產(chǎn)生噪聲,所以總線的抗干擾能力也加強(qiáng)了,提高了通信的可靠性 [11]。通信協(xié)議實(shí)現(xiàn)的流程如圖 55 和圖 56 所示。開始設(shè)置分機(jī)號(hào)碼 n發(fā)
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1