• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      單片機(jī)雙機(jī)串行通信多數(shù)據(jù)傳輸匯編語言編程實現(xiàn)

      2021-03-16 10:08:36北京交通大學(xué)海濱學(xué)院電子與電氣工程學(xué)院王東振
      電子世界 2021年4期
      關(guān)鍵詞:接收數(shù)據(jù)發(fā)送數(shù)據(jù)雙機(jī)

      北京交通大學(xué)海濱學(xué)院電子與電氣工程學(xué)院 沈 敏 張 靜 王東振 金 鈺

      串口是單片機(jī)與其他單片機(jī)或計算機(jī)系統(tǒng)進(jìn)行異步串行通信的標(biāo)準(zhǔn)I/O接口,在系統(tǒng)設(shè)計中應(yīng)用非常廣泛。以教學(xué)中使用的CPU字長是8位的51單片機(jī)為例,實現(xiàn)雙機(jī)間多數(shù)據(jù)串行傳輸,在多數(shù)據(jù)發(fā)送時為每個數(shù)據(jù)增加特征值,接收的時候通過特征值判斷接收的數(shù)據(jù),此方法最多可以實現(xiàn)雙機(jī)間16個數(shù)據(jù)的傳送,適用于5-8個通道的數(shù)據(jù)采集系統(tǒng)。將此設(shè)計思想應(yīng)用在0-999s的秒表系統(tǒng)設(shè)計中,系統(tǒng)運行穩(wěn)定,實現(xiàn)預(yù)期效果。

      單片機(jī)串口是異步串行通信,發(fā)送方發(fā)送數(shù)據(jù)并不考慮接收方什么時候接收,如果是傳送1個數(shù)據(jù)比較好處理,串口無論工作在查詢方式下還是中斷方式下,接收方的CPU只要檢測RI=1,就可以接收數(shù)據(jù)。

      如果發(fā)送方發(fā)送的是多個數(shù)據(jù),接收方接收的是發(fā)送方發(fā)送的多個數(shù)據(jù)的哪一個?發(fā)送方發(fā)送的多個數(shù)據(jù)是動態(tài)變化的,盡管發(fā)送方發(fā)送多個數(shù)據(jù)的順序在編程中是固定不變的,但是串口通信是異步的,接收方接收時,無法知道此次接收的數(shù)據(jù)是發(fā)送方發(fā)送的哪一個數(shù)據(jù),所以接收方必須有能力判斷接收到的是哪一個數(shù)據(jù)才能真正實現(xiàn)異步串行通信多數(shù)據(jù)的正確傳送。

      1 發(fā)送數(shù)據(jù)的加密原理及編程實現(xiàn)

      要想讓接收方有能力判斷接收的數(shù)據(jù)是哪一個數(shù)據(jù),可以對要發(fā)送的數(shù)據(jù)做加密處理,數(shù)據(jù)加密技術(shù)是網(wǎng)絡(luò)中最基本的安全技術(shù),主要是通過對網(wǎng)絡(luò)中傳輸?shù)男畔⑦M(jìn)行數(shù)據(jù)加密來保障其安全性。本設(shè)計借用數(shù)據(jù)加密的思想,對要發(fā)送的數(shù)據(jù)采用增加特征值的加密處理方法,乙機(jī)接收數(shù)據(jù)后,通過解密獲取特征值,就可以知道接收的是哪一個數(shù)據(jù)了。特征值的選取要視發(fā)送數(shù)據(jù)的范圍,本文以發(fā)送壓縮BCD碼說明數(shù)據(jù)加密的原理及編程實現(xiàn)。

      1.1 發(fā)送數(shù)據(jù)的加密原理

      壓縮BCD碼是用4位二進(jìn)制表示1位十進(jìn)制,由于設(shè)計中使用的單片機(jī)CPU的字長是8位的,所以一次可以處理1個字節(jié)數(shù)據(jù),用字節(jié)表示1位BCD碼的時候,高4位一定是“0”,低4位是”0-9”中的1個數(shù)字,這樣用高4位的“0”就可以實現(xiàn)對數(shù)據(jù)加密處理。使用邏輯或指令,對傳送數(shù)據(jù)的高4位用1-4個“1”做邏輯或的運算,增加一個特征值。從0001一直到1111,一共可以加密15個數(shù)據(jù),如果加上0000,則可以實現(xiàn)對16個BCD碼數(shù)據(jù)的高4位做加密處理。在實際雙機(jī)通信系統(tǒng)中,下位機(jī)在現(xiàn)場檢測數(shù)據(jù),并把檢測的數(shù)據(jù)做二進(jìn)制到十進(jìn)制的轉(zhuǎn)換,將轉(zhuǎn)換的結(jié)果通過串口發(fā)送給上位機(jī)進(jìn)行顯示,如果檢測數(shù)據(jù)范圍在0-999的范圍,則上述加密方法可以對5個數(shù)據(jù)采集通道的數(shù)據(jù)做加密處理;如果檢測數(shù)據(jù)范圍在0-99的范圍,則可以對8個數(shù)據(jù)采集通道的數(shù)據(jù)加密,該加密方法可以滿足大部分雙機(jī)通信系統(tǒng)設(shè)計中。

      圖1 數(shù)據(jù)加密及發(fā)送流程圖

      1.2 數(shù)據(jù)加密的匯編編程實現(xiàn)

      本文以0-999秒的秒表作為應(yīng)用背景,發(fā)送方相當(dāng)于下位機(jī)檢測數(shù)據(jù),發(fā)送方使用51單片機(jī)的定時器0工作在方式1、12MHZ晶振下,再利用“軟計數(shù)”做1S定時,定時秒數(shù)的個位、十位和百位分別用R1、R2、R3分別存放,數(shù)據(jù)發(fā)送時串口工作方式2下,以查詢的方式發(fā)送數(shù)據(jù),對這3個數(shù)據(jù)做加密和發(fā)送的流程圖如圖1所示。

      如果要發(fā)送的數(shù)據(jù)比較多,可以使用單片機(jī)集成的片內(nèi)RAM來存放要發(fā)送的數(shù)據(jù),具體的處理過程是一樣的,只是可以使用寄存器間接尋址,通過循環(huán)的方式來加密、發(fā)送多個數(shù)據(jù)。

      對圖1流程圖的匯編語言編程實現(xiàn)如下:

      圖2 數(shù)據(jù)接收算法流程圖

      MOV A,R1;取要發(fā)送的第1個數(shù)據(jù)

      ORL A,#80H;加密,特征值是80H

      MOV SBUF,A;發(fā)送

      JNB TI,$;等待發(fā)送完成

      CLR TI;清發(fā)送標(biāo)志位,準(zhǔn)備發(fā)送第2個數(shù)據(jù)

      MOV A,R2;取要發(fā)送的第2個數(shù)

      ORL A,#40H;加密,特征值是40H

      MOV SBUF,A;發(fā)送

      JNB TI,$;等待發(fā)送完成

      CLR TI;清發(fā)送標(biāo)志位,準(zhǔn)備發(fā)送第3個數(shù)據(jù)

      MOV A,R3;取第3個數(shù)據(jù)

      ORL A,#20H;加密,特征值是20H

      MOV SBUF,A;發(fā)送

      JNB TI,$;等待發(fā)送完成

      CLR TI;清發(fā)送標(biāo)志位

      2 接收數(shù)據(jù)的解密及編程實現(xiàn)

      51單片機(jī)的串口是異步通信,發(fā)送方與接收方工作時序不同步,所以當(dāng)發(fā)送方發(fā)送多個數(shù)據(jù)時,接收方需要能判斷接收的是哪一個數(shù)據(jù),后續(xù)才能做出正確的處理。

      2.1 接收數(shù)據(jù)的解密

      接收數(shù)據(jù)的解密要根據(jù)發(fā)送方加密數(shù)據(jù)的方法進(jìn)行,由于數(shù)據(jù)加密是利用壓縮BCD碼的高4位全是“0”,通過給高4位補(bǔ)充0-4個“1”的特征值的方法進(jìn)行的,接收方接收的數(shù)據(jù)通過提取特征值的方法,就可以判斷當(dāng)前接收的數(shù)據(jù)是哪一個數(shù)據(jù),接收方接收數(shù)據(jù)也是工作在查詢方式下,具體的算法流程圖如圖2所示。

      2.2 接收數(shù)據(jù)的編程實現(xiàn)

      LP:JNB RI,$;等待接收完成

      CLR RI;接收完成,清接收標(biāo)志位,準(zhǔn)備接收下一個數(shù)據(jù)

      MOV A,SBUF;接收數(shù)據(jù)

      MOV 30H,A;保存

      ANL A,#0F0H;提取特征值

      CJNE A,#80H,NEXT;與特征值80H比較,不相等繼續(xù)比較,否則是第1個數(shù)據(jù)

      MOV A,30H;取回保存在30H中的數(shù)據(jù)

      ANL A,#0FH;提取第1個數(shù)據(jù)

      MOV R1,A;保存第1個數(shù)據(jù)

      SJMP XIAN

      NEXT:CJNE A,#40H,NEXT1;與特征值40H比較,不相等繼續(xù)比較,否則是第2個數(shù)據(jù)

      MOV A,30H;取回保存在30H中的數(shù)據(jù)

      ANL A,#0FH;提取第2個數(shù)據(jù)

      MOV R2,A;保存第2個數(shù)據(jù)

      SJMP XIAN

      NEXT1:CJNE A,#20H,AGAIN;與特征值20H比較,不相等等待接收數(shù)據(jù),否則是第3個數(shù)據(jù)

      MOV A,30H;取回保存在30H中的數(shù)據(jù)

      ANL A,#0FH;提取第3個數(shù)據(jù)

      MOV R3,A;保存第3個數(shù)據(jù)

      XIAN:ACALL DISP

      AGAIN:SJMP LP

      接收方在識別出接收的是哪一個數(shù)據(jù)后,通過調(diào)用顯示子程序可以把識別的數(shù)據(jù)送到乙機(jī)數(shù)碼管上顯示,這樣乙機(jī)上0-999s的秒數(shù)可以穩(wěn)定的顯示。

      總結(jié):保證雙機(jī)通信多數(shù)據(jù)正確傳輸?shù)年P(guān)鍵是對發(fā)送的多個數(shù)據(jù)“加密”,具體的處理方法可以是對每個發(fā)送數(shù)據(jù)分別“加密”,然后接收方對接收的數(shù)據(jù)解密后根據(jù)加密特征值逐一對比,也可以只對發(fā)送一組數(shù)據(jù)的首個數(shù)據(jù)做特征值的“加密”處理,接收時只在接收到包含特征值的數(shù)據(jù)后才開始逐一接收,這樣對發(fā)送數(shù)據(jù)的個數(shù)就沒有限制了。

      猜你喜歡
      接收數(shù)據(jù)發(fā)送數(shù)據(jù)雙機(jī)
      移動自組網(wǎng)中MAC層協(xié)議研究
      沖激噪聲背景下基于幅度預(yù)處理的測向新方法*
      雙機(jī)、雙槳軸系下水前的安裝工藝
      低復(fù)雜度多輸入多輸出雷達(dá)目標(biāo)角度估計方法
      基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點性能分析
      帶標(biāo)記方式的CRDSA++協(xié)議性能分析*
      雙機(jī)牽引ZDJ9道岔不同步問題的處理
      Loader軸在雙機(jī)桁架機(jī)械手上的應(yīng)用
      使用IPSec安全傳輸數(shù)據(jù)
      單片機(jī)模擬串口數(shù)據(jù)接收程序的實現(xiàn)及優(yōu)化
      康乐县| 哈巴河县| 页游| 桂林市| 桐城市| 和硕县| 新和县| 江永县| 呼图壁县| 宁远县| 巴林右旗| 涪陵区| 健康| 隆子县| 格尔木市| 承德市| 乌海市| 武清区| 津南区| 琼海市| 枣阳市| 珠海市| 揭西县| 普安县| 始兴县| 甘孜| 蒲城县| 福海县| 淮滨县| 唐海县| 石屏县| 浦江县| 涟水县| 兖州市| 吴桥县| 河南省| 清水县| 台中县| 绍兴市| 邹城市| 邢台市|