資源描述:
《串口擴(kuò)展,uart擴(kuò)展,串口擴(kuò)展485接口》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、串口擴(kuò)展方案基于VK3366的串口擴(kuò)展串口方案二、技術(shù)領(lǐng)域電子信息通信工程三、現(xiàn)有技術(shù)的技術(shù)方案3.1軟件模擬法:可根據(jù)串行通訊的傳送格式,利用定時器和主機(jī)的I/O口來模擬串行通訊的時序,以達(dá)到擴(kuò)展串口的目的。接收過程中需要檢測起始位,這可以使用查詢方式或者在端口具有中斷功能的主機(jī)中也可以使用端口的中斷進(jìn)行處理。接收和發(fā)送過程中,對定時的處理既可以使用查詢方式也可以使用定時器中斷方式。為了確保數(shù)據(jù)的正確性,在接收過程中可以在檢測異步傳輸?shù)钠鹗夹盘柼幖由弦恍┓栏蓴_處理,如果是無線傳輸系統(tǒng),在接收每個位時可以采用多次采樣。對于有線系統(tǒng)來說,1次
2、采樣就夠了,軟件模擬串口還是有它自身的一些不足,面臨著采樣速度比較慢,采樣方式還是不如硬件采樣方式準(zhǔn)確,抗干擾能力也差很多。3.2基于TL16C554的串行口擴(kuò)展TL16C554是TI公司生產(chǎn)的4通道異步收發(fā)器集成芯片。對TL16C554串行通道的控制,是通過對控制寄存器LCR、IER、DLL、DLM、MCR和FCR編程來實現(xiàn)的。這些控制字決定字符長度、停止位的個數(shù)、奇偶校驗、波特率以及調(diào)制解調(diào)器接口??刂萍拇嫫骺梢匀我忭樞?qū)懭耄荌ER必須最后一個寫入,因為它控制中斷使能,如果后面還需要調(diào)整數(shù)據(jù)格式,波特率這些就比較困難,操作也不夠靈活
3、。串行通道內(nèi)的波特率發(fā)生器(BRG)允許時鐘除以1至65535之間的任意數(shù),BRG根據(jù)其不同的三種通用頻率中的一種來決定標(biāo)準(zhǔn)波特率。3.3基于GM8123/25系列芯片的串行口擴(kuò)展17GM8123/25系列串口擴(kuò)展芯片可以全硬件實現(xiàn)串口擴(kuò)展,通訊格式可設(shè)置,并與標(biāo)準(zhǔn)串口通訊格式兼容。GM8125可擴(kuò)展5個標(biāo)準(zhǔn)串口,通過外部引腳選擇串口擴(kuò)展模式:單通道工作模式和多通道工作模式。單通道模式下,無需設(shè)置芯片的通訊格式,子串口和母串口以相同的波特率工作,同一時刻只允許一組子串口和母串口通訊,工作子串口由地址線選擇。單通道工作模式適用于所有從機(jī)不需要
4、同時通訊,并且通訊過程完全由主機(jī)控制的系統(tǒng)。多通道模式下,各子串口波特率相同,允許所有子串口同時與母串口通訊,母串口以子串口波特率的6倍工作。發(fā)送時由地址線選擇用來發(fā)送數(shù)據(jù)的子串口;接收時子串口能主動響應(yīng)從機(jī)發(fā)送的數(shù)據(jù),再由母串口發(fā)送給主機(jī),同時由地址線返回接收到數(shù)據(jù)的子串口地址,主機(jī)在接收到子串口送來的數(shù)據(jù)后,可以根據(jù)地址線的狀態(tài)判斷數(shù)據(jù)是由哪一個從機(jī)發(fā)送的。多通道工作模式下,在進(jìn)行數(shù)據(jù)通訊前要對芯片進(jìn)行工作方式設(shè)置,包括串口幀格式設(shè)置和通訊波特率設(shè)置。通過串行口和控制引腳相互配合可對芯片進(jìn)行工作方式設(shè)置,引腳MS為0、且STADD2~S
5、TADD0為000時寫命令字,引腳MS為1、STADD2~STADD0為000時讀命令字。進(jìn)行工作方式設(shè)置時,芯片的幀格式和母串口工作波特率與上一次進(jìn)行數(shù)據(jù)通訊時一致;而復(fù)位后的幀格式為11bit,母串口波特率為7200bps。顯然這款芯片還是有其不足的地方:首先是需要發(fā)送和接收數(shù)據(jù)時的地址控制線,占用了較多的系統(tǒng)資源,對于資源比較緊張的控制器來說,這點是比較難也解決的;其次是發(fā)送數(shù)據(jù)和接收數(shù)據(jù)都必須去操作控制線,這樣操作起來比較復(fù)雜,而且實時性也比較差些;再次是數(shù)據(jù)格式,波特率這些修改起來比較麻煩?! ?.4基于SP2338的串行口擴(kuò)展S
6、P2338是采用低功耗CMOS工藝設(shè)計的通用異步串行口擴(kuò)展芯片,它可輕松將主機(jī)原有的1個串行口擴(kuò)展成3個全新的全雙工串行口。SP2338適用于1個起始位、8個數(shù)據(jù)位、1個停止位的多串口系統(tǒng),也就是說其幀格式是不可編程的。主機(jī)通過改變ADRI1、ADRI0地址線狀態(tài)的方式選擇3個子串口中的任意一個,3個子串口的地址分別為00、01、10。地址11用于執(zhí)行SP2338芯片本身的復(fù)位指令0x35或0xB5、睡17眠指令0x55或0xD5、延時指令0x00。向RX0~RX3中的任意一個接收端口寫任意數(shù)據(jù)即可將SP2338喚醒,但由于SP2338的喚
7、醒時間需要25ms左右,故用于芯片喚醒的數(shù)據(jù)將不會被主機(jī)接收。因此,可以先發(fā)送一個字節(jié)數(shù)據(jù)用于喚醒芯片,延時25ms后即可進(jìn)行正常的數(shù)據(jù)傳輸。未使用的輸入端口,如RX0、RX1、RX2等必須連接到VCC;未使用的輸出端口,如TX0、TX1、TX2等必須懸空;未使用的ADRI0、ADRI1必須連接到GND。主機(jī)收發(fā)數(shù)據(jù)時序為:主機(jī)TX3接收到一個字節(jié)后應(yīng)立即讀取SP2338的輸出地址ADRO0、ADRO1的狀態(tài),判斷接收到的數(shù)據(jù)來自哪個子串口;主機(jī)發(fā)送數(shù)據(jù)時,首先通過ADRI0、ADRI1選擇某一個子串口,再向TX3寫將發(fā)送的數(shù)據(jù)。從對SP2
8、338的操作來看,通過這款芯片來擴(kuò)展串口,也有些不足的地方,首先,收發(fā)數(shù)據(jù)的時候,需要地址控制線,占用較多的系統(tǒng)資源;其次,數(shù)據(jù)格式比較單一,只支持一種數(shù)據(jù)格式。最后,對電路設(shè)計