導航:首頁 > 程序命令 > 串口命令解析

串口命令解析

發布時間:2024-04-10 02:26:19

『壹』 串口數據解析

想山寨還是想逆向啊,呵呵。串口數據分析,一般的數據幀:幀頭,幀長度,數據體,校驗(可能不存在),幀尾(可能不存在)。幀頭很多是0x02,或ASCII中的「:」,幀尾很多是0x03或0x0d0x0a(回車換行),校驗方式一般有數據域累加,異或,計算CRC等,數據體就千奇百怪了,如果能看懂就看看,如果是加過密的,那你還是放棄吧

『貳』 linux 查看某個串口參數(波特率,數據位等)命令什麼

用CAT命令查看

#cat /proc/tty/driver/serial
如果需要配置串口參數,minicom是個很好的選擇。

一、安裝
sudo apt-get install minicom

二、配置

配置minicom的參數
運行$ sudo minicom -s
便進入了minicom的配置界面,使用上下鍵選擇Serial port setup,回車。此時游標在「change which setting」後面停留,它的上面有如下菜單:

只需輸入上面對應的字母,就可以進如相應的菜單進行設置。設置完成,回車,游標會回到「change which setting」後面,如此重復。完成按回車返回主菜單即可。

『叄』 串口RS-232發送代碼問題

「商業軟體」串口發送和接收數據,發送的只能是字元串型的代碼,設備要收十六進制代碼
答案:
1、分析
發送字元串型,實際是一個一個字元發送的,設備也是一個一個十六進制代碼接受的。
應此,如果設備端要接收「55 01 01 02 01」這樣5個位元組的十六進制代碼,軟體端發送可以這樣,
例如發送字元串變數是buff:
char *buff[10];
buff[0]=0x55;
buff[1]=0x01;
buff[2]=0x01;
buff[3]=0x02;
buff[4]=0x01;
不幸的是如果要發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼,由於裡面含有十六進制00(即0x00),0x00字元表示是'\0',在字元串中表示的字元串結束。
看你運氣了,如果程序的源代碼中發送字元串模塊,發送字元長度是通過判斷字元串長度(strlen)來工作的,那你怎麼也發送不出「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼,從上看出
buff[5]=0x00;buff[6]=0x00;buff[7]=0x5a;時,你的軟體會認為字元串長度只有5。只會發送出「55 01 01 02 01」這樣5個位元組的十六進制代碼。如果你的軟體發送字元長度是根據你輸入或設定的,那能正常發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼。
例如發送字元串變數是buff:
char *buff[10];
buff[0]=0x55;
buff[1]=0x01;
buff[2]=0x01;
buff[3]=0x02;
buff[4]=0x01;
buff[5]=0x00;
buff[6]=0x00;
buff[7]=0x5a;
2、解決辦法(不該源代碼的情況下)
做個中間件,需要用到PC的多個串口通道(串口不夠用多串口卡擴展),系統接線也要調整,如果是1對1(一套軟體對一個設備)
例如:軟體是用com1口發送接收,原來是直接com1口接設備,現在改成,com1口接com2口,com2口同時也接設備(注意RS232是可以三線通訊的,PC端com1口的2腳接com2口的3腳,com2口的3腳接設備的2腳,PC端com1口的3腳接com2口的2腳,com2口的2腳接設備的3腳,PC端com1口的5腳接com2口的5腳,接設備的5腳),這樣做的原理是通過com2口來正確發送給設備十六進制代碼。並且com1向com2發送的命令需要修改。例如
要發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼,軟體這端
發送字元串變數是buff:
char *buff[10];
buff[0]=0x55;
buff[1]=0x01;
buff[2]=0x01;
buff[3]=0x02;
buff[4]=0x01;
buff[5]=0xee;
buff[6]=0xff;
buff[7]=0xee;
buff[8]=0xff;
buff[9]=0x5a;
com2口中間件收到「55 01 01 02 01 ee ff ee ff 5a」這樣10個位元組的十六進制代碼,他就會進行轉換(0xee表示下個位元組需要轉碼,轉碼方法是減去0xff,那0xff實際就是0x00。)這樣通過中間件在com2口向設備發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼。
以上是發送,如果接收呢,同樣看商業軟體的接受機制,如果商業軟體收到0x00,實際就是'\0',表示一個字元串接受終止,那麼接收數據怎麼整都不能正常收到「55 02 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼(含0x00),那麼只有改寫源代碼一種方法。
3、後記
如果你的所謂商業軟體要求別人改源代碼不切實際,而且商業軟體也不復雜,可以找人重寫商業軟體了,現在做軟體外快的人太多了,拿公司軟體稍微改改,時間用不了多少,費用也不高,幾千吧

『肆』 如何查看linux下串口是否可用串口名稱等

1、查看串口是否可用,可以對串口發送數據比如對com1口,echo lyjie126 > /dev/ttyS0

2、查看串口名稱使用 ls -l /dev/ttyS* 一般情況下串口的名稱全部在dev下面,如果你沒有外插串口卡的話默認是dev下的ttyS* ,一般ttyS0對應com1,ttyS1對應com2,當然也不一定是必然的;

3、查看串口驅動:cat /proc/tty/drivers/serial

4、查看串口設備:dmesg | grep ttyS*

(4)串口命令解析擴展閱讀

介面劃分標准

同步串列介面(英文:SynchronousSerialInterface,SSI)是一種常用的工業用通信介面。。

非同步串列是指UART(Universal Asynchronous Receiver/Transmitter),通用非同步接收/發送。UART是一個並行輸入成為串列輸出的晶元,通常集成在主板上。UART包含TTL電平的串口和RS232電平的串口。 TTL電平是3.3V的,而RS232是負邏輯電平,它定義+5~+12V為低電平,而-12~-5V為高電平,MDS2710、MDS SD4、EL805等是RS232介面,EL806有TTL介面。

串列介面按電氣標准及協議來分包括RS-232-C、RS-422、RS485等。RS-232-C、RS-422與RS-485標准只對介面的電氣特性做出規定,不涉及接插件、電纜或協議。

閱讀全文

與串口命令解析相關的資料

熱點內容
霍妮pdf 瀏覽:808
反編譯VMP 瀏覽:46
hello編譯器 瀏覽:771
apk程序加密 瀏覽:595
如何給app重命名 瀏覽:603
怎麼幽默調侃程序員 瀏覽:285
忘記密碼解壓視頻 瀏覽:911
運城機場春運加密 瀏覽:287
安卓手機如何關閉app後台 瀏覽:154
安卓數字密碼忘記怎麼破解 瀏覽:252
pythonzmq模式 瀏覽:181
linux運行php網站 瀏覽:865
實驗室無油壓縮機 瀏覽:805
哪裡可以免費看動畫app 瀏覽:53
文本加密咋解 瀏覽:485
tomcat做伺服器怎麼設置 瀏覽:252
非對稱加密會增大網路包嗎 瀏覽:703
為什麼不能編譯c 瀏覽:262
數據伺服器不能啟動是什麼意思 瀏覽:556
java以什麼開頭 瀏覽:821