0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Android智能硬件開發(fā)之串口通信介紹

9GxC_IoTMaker ? 來源:pigdreams ? 作者:pigdreams ? 2022-07-03 16:27 ? 次閱讀

通過總結(jié)大大小小多個Andriod智能硬件開發(fā)項(xiàng)目,記錄了智能硬件產(chǎn)品開發(fā)的全流程、智能硬件開發(fā)所涉及的技術(shù)體系概述的心得,并附上在主板選型、串口通信、屏幕顯示、常用外接設(shè)備上一些品類的特點(diǎn)和差異,分析了我的開發(fā)流程習(xí)慣原因,以供交流。

5.關(guān)于串口通信

串口通信是Android智能硬件開發(fā)所必須具備的能力,市面上類型眾多的外設(shè)基本都是通過串口進(jìn)行數(shù)據(jù)傳輸?shù)?,所以說不會串口通信根本就做不了智能硬件開發(fā)。

5.1 UART定義

通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART,是一種串行異步收發(fā)協(xié)議。

UART串口有三種工作方式:單工、半雙工、全雙工。硬件連接比較簡單,僅需要3條線,注意連接時兩個設(shè)備UART電平,如電平范圍不一致請做電平轉(zhuǎn)換后再連接,可參考此文章。

我們常見的串口通訊設(shè)置的界面如下所示,

74f01420-f9d8-11ec-ba43-dac502259ad0.png

主要有下列幾個參數(shù);

Speed(baud) 波特率

Data bits 數(shù)據(jù)位

Stop bits 停止位

Parity 奇偶校驗(yàn)位

Flow Control 流控

我們的設(shè)置基本都是8位數(shù)據(jù)位,1位停止位,無校驗(yàn)無流控,就如上圖所示。對于程序開發(fā)而言,主要關(guān)注的參數(shù)就是波特率。

另外,需要注意的是比特率、成波特率兩者之間是有區(qū)別的。

波特率表示每秒鐘傳送的碼元符號的個數(shù),是衡量數(shù)據(jù)傳送速率的指標(biāo),它用單位時間內(nèi)載波調(diào)制狀態(tài)改變的次數(shù)來表示。

信息傳輸通道中,攜帶數(shù)據(jù)信息的信號單元叫碼元,每秒鐘通過信道傳輸?shù)拇a元數(shù)稱為碼元傳輸速率,簡稱波特率。

1波特即指每秒傳輸1個碼元符號(通過不同的調(diào)制方式,可以在一個碼元符號上負(fù)載多個bit位信息)。

1比特每秒是指每秒傳輸1比特(bit)。單位“波特”本身就已經(jīng)是代表每秒的調(diào)制數(shù),以“波特每秒”(Baud per second)為單位是一種常見的錯誤。

按照上述的基本設(shè)置,其實(shí)一個碼元總共傳輸了10個比特,1個起始位+1個停止位+8個數(shù)據(jù)位,如波特率為9600,那每秒一共傳輸了9600*10 = 96000個比特,換算成字節(jié)為12000 byte,約合11.72kb。

需要注意的是這12000byte指的是串口實(shí)際一共傳輸?shù)臄?shù)據(jù)位,但對于我們程序而言,真正能處理的數(shù)據(jù)就是除去起始位與停止位的數(shù)據(jù)位,對于傳輸8位數(shù)據(jù)位的設(shè)置而言,波特率是多少則傳輸?shù)淖止?jié)就是多少。如9600的波特率表示每秒傳輸9600個字節(jié),每毫秒9.6字節(jié)。

安卓主板中一個串口端子的定義如下圖所示

7506fabe-f9d8-11ec-ba43-dac502259ad0.png

幾乎所有安卓主板上的串口都是這種4pin的形式,這里有一個特別重要的點(diǎn),就是對外設(shè)接線時,RX要對上外設(shè)的TX口,TX則對應(yīng)RX口,否則是接收不到數(shù)據(jù)傳輸?shù)摹?/p>

在我所接觸的眾多外設(shè)中,安卓的常用串口有三種標(biāo)準(zhǔn)接口。

RS232

RS485

TTL

UART所指的是硬件接口,是硬件層次的描述。而TTL與RS232、485則指的是數(shù)據(jù)傳輸?shù)碾娖綐?biāo)準(zhǔn),計算機(jī)的存儲單位是二進(jìn)制位(bit),也就是0和1,而0和1怎么用電壓來表示呢?不同的表示方法于是對應(yīng)了不同的標(biāo)準(zhǔn),這就是TTL、RS232這些電平標(biāo)準(zhǔn)之間的區(qū)別。

所有CPU芯片的UART數(shù)據(jù)傳輸?shù)碾娖蕉际遣捎肨TL標(biāo)準(zhǔn)的,我們所看到的安卓主板上RS232或485的接口都是要再需要經(jīng)過一次電平轉(zhuǎn)換才能與CPU進(jìn)行通信的。可以這樣說,安卓主板CPU直接引出來的串口管腳都是TTL標(biāo)準(zhǔn)的,如需要其它的接口則要中間再增加一個電平轉(zhuǎn)換芯片以滿足要求。

5.2 三種UART接口介紹

TTL

TTL(Transistor-Transistor Logic,晶體管-晶體管邏輯),TTL電路的工作電壓是5V,它的輸出可以是高電平(3.6V)或者低電平(0.3V)。為了用這種模擬量的電壓來表示數(shù)字量的邏輯1和邏輯0,TTL電平規(guī)定:

對于輸出電路:電壓大于等于(≥)2.4V為邏輯1;電壓小于等于(≤)0.4V為邏輯0;

對于輸入電路:電壓大于等于(≥)2.0V為邏輯1;電壓小于等于(≤)0.8V為邏輯0;

RS232

它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”,該標(biāo)準(zhǔn)規(guī)定采用一個25個腳的DB-25連接器,對連接器的每個引腳的信號內(nèi)容加以規(guī)定,還對各種信號的電平加以規(guī)定。

后來IBM的PC機(jī)將RS232簡化成了DB-9連接器,從而成為事實(shí)標(biāo)準(zhǔn)。而工業(yè)控制的RS-232口一般只使用RXD、TXD、GND三條線。如下圖所示。

752bb3cc-f9d8-11ec-ba43-dac502259ad0.jpg

采用負(fù)邏輯,規(guī)定邏輯“1”的電平為-5V~-15 V,邏輯“0”的電平為+5 V~+15 V。選用該電氣標(biāo)準(zhǔn)的目的在于提高抗干擾能力,增大通信距離。RS -232的噪聲容限為2V,接收器將能識別低至+3V的信號作為邏輯“0”,將高到-3 V的信號作為邏輯“1”。

全雙工通信,傳輸距離較短,其通訊距離小于15 m,傳輸速率小于20 kb/s。

RS485

RS-485總線標(biāo)準(zhǔn)規(guī)定了總線接口的電氣特性標(biāo)準(zhǔn)即對于2個邏輯狀態(tài)的定義:正電平在+2V~+6V之間,表示一個邏輯狀態(tài);負(fù)電平在-2V~-6V之間,則表示另一個邏輯狀態(tài);

數(shù)字信號采用差分傳輸方式,即是A-B兩者的電壓差用以表示邏輯狀態(tài),能夠有效減少噪聲信號的干擾。

RS-485工業(yè)總線標(biāo)準(zhǔn)能夠有效支持多個分節(jié)點(diǎn)和通信距離遠(yuǎn),總共可接收32個設(shè)備,且對于信息的接收靈敏度較高,均采用屏蔽雙絞線傳輸。采用半雙工(兩線制)最大傳輸距離約1219米,傳輸速度最高達(dá)10Mbps。

754bcb9e-f9d8-11ec-ba43-dac502259ad0.jpg

原文標(biāo)題:開發(fā)心得(2):Android智能硬件的關(guān)鍵——串口通信

文章出處:【微信公眾號:機(jī)智云開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Android系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    56

    瀏覽量

    13500
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1626

    瀏覽量

    55528
  • 智能硬件
    +關(guān)注

    關(guān)注

    205

    文章

    2347

    瀏覽量

    107570

原文標(biāo)題:開發(fā)心得(2):Android智能硬件的關(guān)鍵——串口通信

文章出處:【微信號:IoTMaker,微信公眾號:機(jī)智云開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    串口通信原理解析 串口與并口的區(qū)別

    在計算機(jī)硬件通信領(lǐng)域,串口(Serial Port)和并口(Parallel Port)是兩種常見的數(shù)據(jù)傳輸接口。它們在數(shù)據(jù)傳輸方式、速度、應(yīng)用場景等方面有著明顯的區(qū)別。 串口
    的頭像 發(fā)表于 12-27 09:50 ?103次閱讀

    瑞芯微平臺Android系統(tǒng)串口測試方法,觸覺智能RK3562開發(fā)板演示

    瑞芯微方案主板Android系統(tǒng)串口測試方法,通用RK3568、RK3566、RK3588、RK3576等。觸覺智能RK3562開發(fā)板演示
    的頭像 發(fā)表于 12-24 11:51 ?190次閱讀
    瑞芯微平臺<b class='flag-5'>Android</b>系統(tǒng)<b class='flag-5'>串口</b>測試方法,觸覺<b class='flag-5'>智能</b>RK3562<b class='flag-5'>開發(fā)</b>板演示

    全志T113-S3開發(fā)串口通信

    前言:串口通信是異步的,所以端口能夠在一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶的校驗(yàn)。對于兩個需要進(jìn)行
    的頭像 發(fā)表于 12-19 08:33 ?230次閱讀
    全志T113-S3<b class='flag-5'>開發(fā)</b>板<b class='flag-5'>之</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    基于Arduino的串口通信項(xiàng)目

    基于Arduino的串口通信項(xiàng)目涉及多個方面,包括硬件連接、軟件編程、串口參數(shù)配置等。 一、硬件準(zhǔn)備 Arduino
    的頭像 發(fā)表于 11-22 09:24 ?530次閱讀

    串口通信開發(fā)環(huán)境配置

    串口通信開發(fā)環(huán)境配置涉及多個方面,包括選擇編程語言、安裝必要的庫或驅(qū)動程序、配置串口參數(shù)等。以下是一個基于Python的串口
    的頭像 發(fā)表于 11-22 09:21 ?261次閱讀

    串口通信硬件接口要求 串口通信與網(wǎng)絡(luò)通信的比較

    重要角色。 串口通信硬件接口要求 1. 接口類型 串口通信通常使用RS-232、RS-422或RS-485等標(biāo)準(zhǔn)接口。這些接口定義了電氣特
    的頭像 發(fā)表于 11-22 09:14 ?369次閱讀

    串口通信設(shè)備連接方法 串口通信在嵌入式開發(fā)中的應(yīng)用

    串口通信設(shè)備連接方法 1. 了解串口通信基礎(chǔ) 串口通信,也稱為串行
    的頭像 發(fā)表于 11-22 09:07 ?579次閱讀

    串口通信協(xié)議解析 串口通信應(yīng)用實(shí)例

    串口通信協(xié)議解析 串口通信協(xié)議是指規(guī)定了數(shù)據(jù)包的內(nèi)容,內(nèi)容包含了起始位、主體數(shù)據(jù)、校驗(yàn)位及停止位,雙方需要約定一致的數(shù)據(jù)包格式才能正常收發(fā)數(shù)據(jù)的有關(guān)規(guī)范。以下是
    的頭像 發(fā)表于 11-21 17:03 ?527次閱讀

    為什么通信要使用虛擬串口串口助手?

    是軟件模擬的串行通信接口,可在計算機(jī)上創(chuàng)建虛擬串口設(shè)備。操作與實(shí)際硬件串口相似,解決無硬件串口設(shè)
    的頭像 發(fā)表于 11-15 01:04 ?1026次閱讀
    為什么<b class='flag-5'>通信</b>要使用虛擬<b class='flag-5'>串口</b>和<b class='flag-5'>串口</b>助手?

    瑞芯微RK3566開發(fā)板USB OTG模式介紹及命令切換,觸覺智能EVB3566主板鴻蒙硬件廠商

    本文USB OTG模式介紹及命令切換,適用于嵌入式工程師、硬件開發(fā)教程入門學(xué)習(xí)課程。設(shè)備為觸覺智能開發(fā)的瑞芯微RK3566開發(fā)板,型號IDO
    的頭像 發(fā)表于 09-05 17:01 ?1296次閱讀
    瑞芯微RK3566<b class='flag-5'>開發(fā)</b>板USB OTG模式<b class='flag-5'>介紹</b>及命令切換,觸覺<b class='flag-5'>智能</b>EVB3566主板鴻蒙<b class='flag-5'>硬件</b>廠商

    串口驅(qū)動分析serial driver

    前兩節(jié)我們介紹串口驅(qū)動的框架和tty core部分。這節(jié)我們介紹硬件緊密相關(guān)的串口驅(qū)動部分。
    的頭像 發(fā)表于 09-04 14:23 ?448次閱讀
    <b class='flag-5'>串口</b>驅(qū)動分析<b class='flag-5'>之</b>serial driver

    什么是串口通信?它有哪些特點(diǎn)和應(yīng)用?

    在現(xiàn)代電子通信和計算機(jī)領(lǐng)域中,串口通信(Serial Communications)扮演著至關(guān)重要的角色。它是一種按位(bit)發(fā)送和接收字節(jié)的通信方式,能夠?qū)崿F(xiàn)數(shù)據(jù)的遠(yuǎn)距離傳輸和高效
    的頭像 發(fā)表于 05-23 16:23 ?2461次閱讀

    實(shí)習(xí)大學(xué)生如何在Purple Pi OH鴻蒙開發(fā)板下調(diào)試Android串口

    開源鴻蒙硬件方案領(lǐng)跑者觸覺智能本文適用于PurplePiOH在Android固件后串口開發(fā)與使用。觸覺
    的頭像 發(fā)表于 05-14 08:32 ?591次閱讀
    實(shí)習(xí)大學(xué)生如何在Purple Pi OH鴻蒙<b class='flag-5'>開發(fā)</b>板下調(diào)試<b class='flag-5'>Android</b><b class='flag-5'>串口</b>

    5G智能物聯(lián)網(wǎng)課程之安卓環(huán)境開發(fā)

    課程類別 課程名稱 視頻課程時長 視頻課程鏈接 課件鏈接 開發(fā)環(huán)境 開發(fā)環(huán)境搭建Android Studio安裝 5分42秒 https://t.elecfans.com/v/255
    發(fā)表于 04-01 10:39

    QT串口通信的簡單使用

    QT串口通信是上位機(jī)和下位機(jī)通信常用的通信方式, 也是學(xué)習(xí)QT必須學(xué)會的基礎(chǔ)知識, 這篇就簡單介紹一下QT
    的頭像 發(fā)表于 01-15 09:27 ?2023次閱讀
    QT<b class='flag-5'>串口</b><b class='flag-5'>通信</b>的簡單使用