1. TCP/IP協議是否能在串口上進行通信,怎樣實現
這個是可以的,TCP/IP只是網路層和傳輸層協議,物理層上可以選擇WIFI,T1,為啥就不能用回串口答呢,但是實際上串口是點對點傳輸,簡單的協議就夠了,TCP/IP裡面的一些特性是用於處理網路的,犧牲了大量的數據和帶寬用於保證傳輸的穩定性和低延遲,這個對於串口來說完全是浪費。就要比用大炮打蚊子。
2. 用c++編寫的串口通信程序,其中有要求:1.通信數據格式(ASCII編碼格式) 2.通信協議(自定義ASCII)
推薦看書
Visual C++_Turbo C串口通信編程實踐
3. 串口通信協議有哪些
問題一:串口通信協議有哪些 I2C匯流排是內部匯流排,用來連接內部系統內的晶元。比如mcu和存儲器、鍵盤現實晶元、ad轉換等等。 串口通信是用來和系統外部的設別通信的。比如設備和設備之間通信。 I2C和串口在通信協議上可以做到一樣,也可做到不一樣,這取決與具體的情況。 mcu和2402通信,mcu和電腦通信它們之間的協議軟體可以做到完全一樣 比如mcu發送1 2402和電腦發送2。
問題二:串口並李衡通訊協議是什麼 串口通訊協議是指通信雙方的一種約定。約定包括對數據格式、同步方式、傳送速度、傳送步驟、檢糾錯方式以及控制字元定義等問題做出統一規定,通信雙方必須共同遵守。因此,也叫做通信控制規程,或稱傳輸控制規程,它屬於ISO'S OSI七層參考模型中的數據鏈路層。
問題三:怎麼寫串口通信協議 通信協議是可以自己定義的,只不過要求不一樣,可以自己隨意定義,也可以根據客戶要求定義,或根據相關設備定義(如你所述你的主機通過掃描槍掃描二維碼,那主機內部就應該有相關編碼協議),看相關說明書能查到。同時自己也可以在裡面加上校驗碼等等
問題四:plc串口通信協議有哪些 232或者485
問題五:串口通信協議是硬體還是軟體 應該是硬體的,,串口數據流鼎原生,沒有編譯的數據
通過軟體,識別成信號,完成執行所要的功能
問題六:R232串口通訊協議是指什麼?內容是?它與R485的區別在哪? 區別是232是全雙工
485一個是半雙工
問題七:串列通信的非同步通信協議 1、串列非同步通信時的數據格式非同步方式通信ASYNC(Asynchronous Data munication),又稱起止式非同步通信,是計算機通信中最常用的數據信息傳輸方式。它是以字元為單位進行傳輸的,字元之間沒有固定的時間間隔要求,而每個字元中的各位則以固定的時間傳送。收、發雙方取得同步的方法是採用絕做在字元格式中設置起始位和停止位。在一個有效字元正式發送前,發送器先發送一個起始位,然後發送有效字元位,在字元結束時再發送一個停止位,起始位至停止位構成一幀。串列非同步傳輸時的數據格式:⑴ 起始位:起始位必須是持續一個比特時間的邏輯「0」電平,標志傳送一個字元的開始。⑵ 數據位:數據位為5-8位,它緊跟在起始位之後,是被傳送字元的有效數據位。傳送時先傳送字元的低位,後傳送字元的高位。數據位究竟是幾位,可由硬體或軟體來設定。⑶ 奇偶位:奇偶校驗位僅佔一位,用於進行奇校驗或偶校驗,也可以不設奇偶位。⑷ 停止位:停止位為1位、1.5位或2位,可有軟體設定。它一定是邏輯「1」電平,標志著傳送一個字元的結束。⑸ 空閑位:空閑位表示線路處於空閑狀態,此時線路上為邏輯「1」電平。空閑位可以沒有,此時非同步傳送的效率為最高。2、串列非同步通信時的數據接收串列非同步通信時,接收方不斷地檢測或監視串列輸入線上的電平變化,當檢測到有效起始位出現時,便知道接著是有效字元位的到來,並開始接收有效字元,當檢測到停止位時,就知道傳輸的字元結束了。經過一段隨機時間間隔之後,又進行下一個字元的傳送過程。 通常接收端的采樣時鍾周期要比傳輸字元的位周期短,常用的采樣時鍾頻率為位頻率的16倍,採取這種措施是為了提高抗干擾能力,參看圖8.19所示。從圖中可知,傳輸字元的位周期Td等於采樣時鍾周期Tc的16倍。接收器的采樣時鍾的每個上升沿對輸入信號進行采樣,檢驗接收數據線上的低電平是否保持8或9個連續的時鍾周期,以確定傳擾轎輸線上的低電平是否是真的起始位。這樣就可以避免雜訊干擾引起的誤操作,從而刪除假的起始位。相當精確地確定起始位的中間點,從而提供一個時間基準,從這個基準開始,每隔16個Tc對其餘數據位采樣,以確保傳輸數據的正確性。接收端為實現采樣數據的基準,可以執行以下步驟:⑴ 在接收端設置一采樣時鍾頻率計數器,當檢測到起始位下降沿時,將其清零,並開始對采樣時鍾計數,即每來一個時鍾,計數器加1。⑵ 當計數器計到8時,表示已到達起始位的中間位置,此時采樣值為0,說明是真正的起始位,同時將計數器清零;若采樣值不為0,則說明一開始檢測到的下降沿不是真正的起始位前沿,而是一次干擾,此次檢測應作廢,計數器清零,並重新開始檢測起始位。⑶ 檢測到真正的起始位後,計數器清零,以後每次計到16時,便采樣收到的信號波形(即每一位的中間),將採到的數值暫存起來,同時將計數器清零,重新計數,直至最後的停止位被采樣。⑷ 如果停止位采樣正確(為1),則字元被接收,並由暫存器裝入寄存器。若停止位采樣值為0,說明同步或傳輸有問題,此次采樣所得字元作廢,不被接收。非同步通信的特點⑴ 起止式非同步通信協議傳輸數據對收發雙方的時鍾同步要求不高,即使收、發雙方的時鍾頻率存在一定偏差,只要不使接收器在一個字元的起始位之後的采樣出現錯位現象,則數據傳輸仍可正常進行。因此,非同步通信的發送器和接收器可以不用共同的時鍾,通信的雙方可以各自使用自己的本地時鍾。⑵ 實際應用中,串列非同步通信的數據格式,包括數據位的位數、校驗位的設置以及停止位的位數都可以根據實際需要,通過可編程串列介面電路,用軟體命令的方式進行設置。在不同傳輸系統中,這些通......>>
問題八:串口通信協議的握手 RS-232通信方式允許簡單連接三線:Tx、Rx和地線。但是對於數據傳輸,雙方必須對數據定時採用使用相同的波特率。盡管這種方法對於大多數應用已經足夠,但是對於接收方過載的情況這種使用受到限制。這時需要串口的握手功能。在這一部分,我們討論三種最常用的RS-232握手形式:軟體握手、硬體握手和Xmodem。a,軟體握手:我們討論的第一種握手是軟體握手。通常用在實際數據是控制字元的情況,類似於GPIB使用命令字元串的方式。必須的線仍然是三根:Tx,Rx和地線,因為控制字元在傳輸線上和普通字元沒有區別,函數SetXModem允許用戶使用或者禁止用戶使用兩個控制字元XON和XOFF。這些字元在通信中由接收方發送,使發送方暫停。例如:假設發送方以高波特率發送數據。在傳輸中,接收方發現由於CPU忙於其他工作,輸入buffer已經滿了。為了暫時停止傳輸,接收方發送XOFF,典型的值是十進制19,即十六進制13,直到輸入buffer空了。一旦接收方准備好接收,它發送XON,典型的值是十進制17,即十六進制11,繼續通信。輸入buffer半滿時,LabWindows發送XOFF。此外,如果XOFF傳輸被打斷,LabWindows會在buffer達到75%和90%時發送XOFF。顯然,發送方必須遵循此守則以保證傳輸繼續。b,硬體握手:第二種是使用硬體線握手。和Tx和Rx線一樣,RTS/CTS和DTR/DSR一起工作,一個作為輸出,另一個作為輸入。第一組線是RTS(Request to Send)和CTS(Clear toSend)。當接收方准備好接收數據,它置高RTS線表示它准備好了,如果發送方也就緒,它置高CTS,表示它即將發送數據。另一組線是DTR(DataTerminal Ready)和DSR(Data SetReady)。這些線主要用於Modem通信。使得串口和Modem通信他們的狀態。例如:當Modem已經准備好接收來自PC的數據,它置高DTR線,表示和電話線的連接已經建立。讀取DSR線置高,PC機開始發送數據。一個簡單的規則是DTR/DSR用於表示系統通信就緒,而RTS/CTS用於單個數據包的傳輸。在LabWindows,函數SetCTSMode使能或者禁止使用硬體握手。如果CTS模式使能,LabWindows使用如下規則:當PC發送數據:RS-232庫必須檢測CTS線高後才能發送數據。當PC接收數據:如果埠打開,且輸入隊列有空接收數據,庫函數置高RTS和DTR。如果輸入隊列90%滿,庫函數置低RTS,但使DTR維持高電平。如果埠隊列近乎空了,庫函數置高RTS,但使DTR維持高電平。如果埠關閉,庫函數置低RTS和DTR。c,XModem握手:最後討論的握手叫做XModem文件傳輸協議。這個協議在Modem通信中非常通用。盡管它通常使用在Modem通信中,XModem協議能夠直接在其他遵循這個協議的設備通信中使用。在LabWindows中,實際的XModem應用對用戶隱藏了。只要PC和其他設備使用XModem協議,在文件傳輸中就使用LabWindows的XModem函數。函數是XModemConfig,XModemSend和XModemReceive。XModem使用介於如下參數的協議:start_of_data、end_of_data、neg_ack、wait_delay、start_delay、max_tries、packet_size。這些參數需要通信雙方認定,標準的XModem有一個標準的定義......>>
問題九:如何設計一種串列通信協議 簡單的說要做一個協議,首先要考慮你的匯流排拓撲形式。是點對點的方式傳輸(是一主一從,還是兩個為對等的節點),還是一個主機下掛了多個從節點(節點和主機如何鏈接,是星形鏈接、樹形鏈接,還是匯流排型連接)。
如果是一主一從的點對點那是最簡單的。如果是兩個對等的節點或者一對多匯流排節點,那就需要考慮匯流排競爭、沖突、地址設計、超時處理等問題。
那最簡單的主從點對點來說(封閉式網路,即設備節點數確定,且非相設備協議不相同無法接入該網路)。
首先你的波特率設置,最好是所有節點都定一個波特率,有人做過不同波特率通信的,反正我沒玩過。而且波特率的大小要從你匯流排的數據量開銷、處理器/控制器的速度、應用的環境中電磁復雜程度、硬體設備的帶寬(頻率高了會不會受影響,導致丟包率增大,或影響其他設備)
然後一個幀開頭應該帶有幀標識,讓對方判斷收到的是數據幀還是應答幀。點對點通信,最少應該具備一個數據命令幀和應答幀。數據命令幀是包含主要設信息的,應答幀是告訴對方是正確否收到數據,如沒有,請重發。另外如果收的幀標識都不是這兩種的,就說明可能匯流排出現問題/受干擾/接入其他未知設備。
其次考慮你傳輸的數據量有多大,是否需要數據包定長。如果傳輸的數據時而多(十幾/幾十個個位元組),時而少(不到一個位元組),那就不能定長。這樣的話就需要在第二第三個位元組(放幀標識的位元組前後)加上包/幀的長度信息。
然後是地址,雖然只有兩個點在面對面對話通信,但建議加上源地址和目標地址。這個只是建議,在點對點通信中可選。
之後應該加上一個序列號,用以表示為第幾次發送。比如說,我發了一次Hello給你,下一次應該發一個World給你,但你反饋應答幀說沒收到或者收到錯誤,然後我再發一次Hello給你,這時的Hello這幀中的序列號應為2了。
接下來是數據內容……
最後是校驗,CRC ……異或……什麼的,對前面所有的數據從幀頭到幀尾的位做數據校驗。防止傳輸過程中,任何一個bit出錯。
現在想到的就是這么點。吐個槽,記得當年我們一組人做鐵路信號設備的協議,研究院的人看了我們兩周想出來的協議後(基於RS584),說:協議是這么簡單就搞出來的么!沒試驗個一年的工夫都不敢說整出一個安全的強壯的協議來。
問題十:串口通訊時的數據幀格式和通訊協議有什麼區別 串口參數指的是串口通信所需要設置的相應參數,就像手機入網,你用的是電信的號碼還是移動的號碼,用的是3G網路還是2G網路,雖然是手機自動設置的,但是還是要設置滴
通信協議就是你說的什麼語言,你和別人溝通,大家都說普通話,一個說英文,一個說法語肯定不行啦。
485-can-tcp/...nt
4. 串口網路編程和其他網路協議的差別
首先肯定要具備網路方面的基礎知識,如乙太網,OSI模型等,其次是協議知識,這是最重要的。只有對協議的結構有了熟悉之後,才能看懂數據包的協議解碼,從而才能做出相應的分析。
你可以下載科來網路分析系統,一邊使用工具一邊學習這樣進步會很快,同時對學習協議及故障分析都非常有好處。
科來軟體自主研發的網路分析和網路管理軟體,通過對協議數據包的解碼分析,透視網路的全景信息,從而全面監測和分析,能夠快速排查全網的網路故障和單一的應用故障,精確並快速定位ARP攻擊、DOS攻擊、DDOS攻擊、DRDOS攻擊等惡意攻擊行為。能夠快速診斷網路錯誤,准確發現潛在隱患,及時判斷危害等級,為網路安全防禦做好分析和支持。有效評估網路性能,查找網路瓶頸,保障網路通訊質量和網路運營健康。