精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式系統中主機串行通信接口不足的幾種解決方案

電子設計 ? 來源:電子設計應用 ? 作者:張俊剛,孫克怡 ? 2021-06-15 14:58 ? 次閱讀

串行接口設備憑借其控制靈活、接口簡單、占用系統資源少等優點,被廣泛應用于工業控制、家庭安防、GPS衛星定位導航以及水、電、氣表的抄表等領域。在這些嵌入式系統中,可能會有很多從設備都通過串行接口與主機進行通信,如GPRS MODEM、紅外發送和接收模塊、RS485總線接口等。這使得開發人員常常面臨嵌入式系統中主機串行通信接口不足的問題,針對此問題,本文介紹了幾種常見的解決方法。

軟件模擬

軟件模擬法可根據串行通訊的傳送格式,利用定時器和主機的I/O口來模擬串行通訊的時序,以達到擴展串口的目的。接收過程中需要檢測起始位,這可以使用查詢方式,或者,在端口具有中斷功能的主機中也可以使用端口的中斷進行處理。接收和發送過程中,對定時的處理既可以使用查詢方式也可以使用定時器中斷方式。為了確保數據的正確性,在接收過程中可以在檢測異步傳輸的起始信號處加上一些防干擾處理,在接收每個位時可以采用多次采樣。

利用并口轉串口擴展串行口

基于Intel8251的串行口擴展

Intel8251是一種通用的同步/異步發送器(USART),它的工作方式可以通過編程設置,并具有獨立的接收/發送器。能以同步或異步串行通信方式工作,自動完成幀格式,具有奇、偶校驗和錯誤檢測電路。

基于TL16C554的串行口擴展

TL16C554是TI公司生產的4通道異步收發器集成芯片。對TL16C554串行通道的控制,是通過對控制寄存器LCR、IER、DLL、DLM、MCR和FCR編程來實現的。這些控制字決定字符長度、停止位的個數、奇偶校驗、波特率以及調制解調器接口。控制寄存器可以任意順序寫入,但是IER必須最后一個寫入,因為它控制中斷使能。串行通道內的波特率發生器(BRG)允許時鐘除以1至65535之間的任意數,BRG根據其不同的三種通用頻率中的一種來決定標準波特率。16C55x系列芯片還包括16C550、16C552,分別可以擴展1個和2個串行口。

利用串行口擴展串行口

基于GM8123/25系列芯片的串行口擴展,GM8123/25系列串口擴展芯片可以全硬件實現串口擴展,通訊格式可設置,并與標準串口通訊格式兼容。GM8125可擴展5個標準串口,通過外部引腳選擇串口擴展模式:單通道工作模式和多通道工作模式。單通道模式下,無需設置芯片的通訊格式,子串口和母串口以相同的波特率工作,同一時刻只允許一組子串口和母串口通訊,工作子串口由地址線選擇。單通道工作模式適用于所有從機不需要同時通訊,并且通訊過程完全由主機控制的系統。

多通道模式下,各子串口波特率相同,允許所有子串口同時與母串口通訊,母串口以子串口波特率的6倍工作。發送時由地址線選擇用來發送數據的子串口;接收時子串口能主動響應從機發送的數據,再由母串口發送給主機,同時由地址線返回接收到數據的子串口地址,主機在接收到子串口送來的數據后,可以根據地址線的狀態判斷數據是由哪一個從機發送的。多通道工作模式下,在進行數據通訊前要對芯片進行工作方式設置,包括串口幀格式設置和通訊波特率設置。通過串行口和控制引腳相互配合可對芯片進行工作方式設置,引腳MS為0、且STADD2“STADD0為000時寫命令字,引腳MS為1、STADD2”STADD0為000時讀命令字。進行工作方式設置時,芯片的幀格式和母串口工作波特率與上一次進行數據通訊時一致;而復位后的幀格式為11bit,母串口波特率為7200bps。

基于SP2338的串行口擴展

SP2338是采用低功耗CMOS 工藝設計的通用異步串行口擴展芯片,它可輕松將主機原有的1個串行口擴展成3 個全新的全雙工串行口。SP2338適用于1個起始位、8個數據位、1個停止位的多串口系統,也就是說其幀格式是不可編程的。主機通過改變ADRI1、ADRI0地址線狀態的方式選擇3個子串口中的任意一個,3個子串口的地址分別為00、01、10。地址11用于執行SP2338 芯片本身的復位指令0x35 或0xB5、睡眠指令0x55或0xD5、延時指令0x00。向RX0“RX3中的任意一個接收端口寫任意數據即可將SP2338喚醒,但由于SP2338的喚醒時間需要25ms左右,故用于芯片喚醒的數據將不會被主機接收。因此,可以先發送一個字節數據用于喚醒芯片,延時25ms后即可進行正常的數據傳輸。

未使用的輸入端口,如RX0、RX1、RX2等必須連接到VCC;未使用的輸出端口,如TX0、TX1、TX2等必須懸空;未使用的ADRI0、ADRI1必須連接到GND。主機收發數據時序為:主機TX3接收到一個字節后應立即讀取SP2338的輸出地址ADRO0、ADRO1的狀態,判斷接收到的數據來自哪個子串口;主機發送數據時,首先通過ADRI0、ADRI1選擇某一個子串口,再向TX3寫將發送的數據。

圖1 本文設計的擴展串行口方法示意圖

本文設計的擴展方法在電路設計的過程中,本文設計出一種適合自己系統需要、將1個串口擴展為3個串口的方案,如圖1所示。其中,4001是四2輸入端或非門,40106是六施密特觸發器。4001的4腳和9腳分別為主機的RXD和TXD,40106的2腳和9腳為子串口的TXD0和RXD0,6腳和11腳為子串口的TXD1和RXD1,4腳和13腳為子串口的TXD2和RXD2。

根據圖的連接方式和邏輯代數的推導可得:RXD的狀態等于40106的9腳、11腳、13腳的狀態相與。當40106的9腳、11腳、13腳中的任意一個有數據信號時,由于在異步串行通訊中,無數據傳輸時的引腳狀態為高,因此RXD上就能接收到有數據信號的那個引腳上的數據狀態。40106的2腳、4腳、6腳的狀態等于TXD的狀態,所以可以利用40106的2腳、4腳、6腳做為子串口的TXD。

這種設計方案適用于主機同時向多個串行設備發送數據,而從設備不同時向主機發送數據的情況。再增加幾個信號線,就可以區分出向哪一個從設備發送數據以及接收到的數據是來自哪一個從設備。在本文的系統中,主機是通信的發起者,接收到的數據來自哪個從設備是可以預知的,因此,只需再增加3個控制從設備使能的信號線即可。

幾種方法的比較

在需要擴展系統的串行口時,使用多串行口單片機的方法是最容易想到的。由于串口集成在單片機內部,因此設備體積較小,抗干擾能力較高,但多串口單片機通常價格較高,而且,如果是開發人員所不熟悉的型號,還需要開發人員重新學習并購買與之配套的開發工具,這延長了產品的開發周期,也增加了產品的開發成本。

軟件模擬法占用的系統資源少、成本低、易于實現。但其采樣次數較低,難以保證數據的正確性,而且一般不能模擬過高的波特率。并行口擴展串口方法的功能比較強大,能提供MODEM控制信號、通訊速度高,但控制復雜,占用MCU的端口資源較多,同時價格也較高。

利用串行口擴展串行口,控制簡單,能最大限度地減少控制線,不需要占用太多的主機系統資源,而且通用性強,性能穩定,可保證數據的正確性。GM812x的不足之處在于:不滿足超低功耗應用要求;多通道模式下,所有子串口工作波特率只能設置成統一值,不適用于各從機工作波特率不一致、又要求同時工作的系統。SP2338雖然能滿足低功耗的要求,但其子串口波特率也需要設置為統一值,并且不能對數據幀格式編程,最高波特率也只有9600bps。

本文提出的方法中,各個子串口的串行特性和母串口相同,使用簡單,占用系統資源少,易于控制(最少2個控制信號擴展3個串口),穩定性好。其功耗取決于4001和40106,它們的功耗都在mA級。其最高波特率取決于4001和40106的響應速度,4001和40106的最大響應延遲是250ns,所以理論上最高波特率可達4Mbps。此方法已經成功地應用于三表遠傳系統。該方法的缺點是,它不能用于從機工作波特率不一致、又要求同時工作的系統。

結語

本文設計了一種擴展串口的方法以解決在實際應用中遇到的主機串行口資源不足的問題,目前該方法已經成功地應用于三表遠傳系統中。在解決這個問題的過程中,本文也對其他解決方案進行了比較。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 收發器
    +關注

    關注

    10

    文章

    3398

    瀏覽量

    105864
  • 嵌入式
    +關注

    關注

    5068

    文章

    19020

    瀏覽量

    303311
  • 發送器
    +關注

    關注

    1

    文章

    258

    瀏覽量

    26797
收藏 人收藏

    評論

    相關推薦

    調試嵌入式系統設計的低速串行總線

    調試嵌入式系統設計的低速串行總線今天,嵌入式系統幾乎遍布在人類社會的每個角落。
    發表于 11-26 09:33

    嵌入式系統串行設備管理怎么實現?

    隨著微電子技術的發展,嵌入式系統的功能越來越強大,像 UART口、IrDA、USB、I2C以及SPI這些串行接口或設備同時存在于一個嵌入式
    發表于 09-04 07:53

    如何在嵌入式系統擴展串行口?

    進行通信,如GPRSMODEM、紅外發送和接收模塊、RS485總線接口等。這使得開發人員常常面臨嵌入式系統
    發表于 10-29 07:08

    嵌入式系統主機串行通信接口不足怎么解決?

    嵌入式系統主機串行通信接口
    發表于 05-28 06:37

    USB主機方式在嵌入式系統的應用是什么?

    單片機的定義是什么?單片機分為哪幾類?單片機的結構是怎樣組成的?USB主機方式在嵌入式系統的應用是什么?串行通信
    發表于 07-14 06:07

    嵌入式為什么要用到Linux系統

    串行外設接口SPI是什么?在嵌入式為什么要用到Linux系統呢?Cache常見的替換算法有哪幾種
    發表于 11-02 08:09

    大佬都在看的嵌入式系統解決方案

    、安全,永不死機,且在數據采集、執行效率上都有極大的改善。多年來廣泛應用于***、電力、教育、醫療等行業。  一、嵌入式系統解決方案  1、配置  計通嵌入式監控
    發表于 11-09 07:56

    嵌入式系統開發串行和USB接口有何作用

    嵌入式開發板中有幾大類接口呢?嵌入式系統開發串行接口
    發表于 12-27 07:57

    嵌入式設備串口擴展的兩種解決方案

    嵌入式系統串行通信的使用十分廣泛。可是嵌入式主機
    發表于 06-06 15:17 ?22次下載

    Java用于嵌入式系統之分析與解決方案

    本文詳細分析了 Java 語言用于嵌入式系統的優點和缺點,并針對其不足提出了可行的解決方案。關鍵詞:嵌入式
    發表于 06-11 16:17 ?8次下載

    32位ARM嵌入式系統擴展USB接口設計

    基于 ARM 處理器的32 位嵌入系統具有極高速和大容量的數據處理能力,如何設計ARM 與主機設備或系統通信
    發表于 08-06 10:06 ?10次下載

    主機接口(HPI)在嵌入式系統的應用

    為了滿足日益復雜和高性能的應用要求,由主機+DSP構成的多CPU 系統已經成為嵌入式技術發展的潮流。因此,主機和DSP之問的數據交換方式就成為嵌入式
    發表于 07-01 16:58 ?31次下載

    示波器解決嵌入式系統串行總線設計

    及與外部世界通信。然而今天,嵌入式系統設計中使用的越來越多的構件將用串行總線代替并行總線,這也給嵌入式
    發表于 01-25 15:33 ?1次下載
    示波器解決<b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b><b class='flag-5'>中</b><b class='flag-5'>串行</b>總線設計

    嵌入式硬件通信接口協議串行通信接口-SPI

    本節繼續講嵌入式硬件通信接口協議的另外一個串行通信接口
    發表于 02-05 11:35 ?1626次閱讀
    <b class='flag-5'>嵌入式</b>硬件<b class='flag-5'>通信</b><b class='flag-5'>接口</b>協議<b class='flag-5'>中</b>的<b class='flag-5'>串行</b><b class='flag-5'>通信</b><b class='flag-5'>接口</b>-SPI

    幾種常見嵌入式設備通信協議

    幾種常見嵌入式設備通信協議
    的頭像 發表于 09-18 16:43 ?1583次閱讀
    <b class='flag-5'>幾種</b>常見<b class='flag-5'>嵌入式</b>設備<b class='flag-5'>通信</b>協議