擴(kuò)展UART的設(shè)計(jì)過程、原理及實(shí)例
通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART,是一種異步收發(fā)傳輸器,是電腦硬件的一部分。它將要傳輸?shù)馁Y料在串行通信與并行通信之間加以轉(zhuǎn)換。作為把并行輸入信號轉(zhuǎn)成串行輸出信號的芯片,UART通常被集成于其他通訊接口的連結(jié)上。具體實(shí)物表現(xiàn)為獨(dú)立的模塊化芯片,或作為集成于微處理器中的周邊設(shè)備。一般是RS-232C規(guī)格的,與類似Maxim的MAX232之類的標(biāo)準(zhǔn)信號幅度變換芯片進(jìn)行搭配,作為連接外部設(shè)備的接口。
目前,UART(UniversalAsynchronousReceiverTransmitter,通用異步收發(fā)器)接口的使用越來越廣泛,許多設(shè)備上都提供了UART接口。工業(yè)使用的微處理器一般都只包括2個(gè)UART口。在實(shí)際工業(yè)數(shù)據(jù)發(fā)送和采集應(yīng)用系統(tǒng)中,為了節(jié)省資源,微處理器直接通過UART口與設(shè)備進(jìn)行數(shù)據(jù)交互。
這樣勢必會導(dǎo)致微處理器的UART口不夠,為了方便設(shè)備的接入,因此擴(kuò)展UART口是一種理想的解決方案。同時(shí),考慮到微處理器的SPI/I2C總線上可以連接多個(gè)總線器件,為了充分利用資源,在實(shí)際應(yīng)用中可以通過SPI/I2C實(shí)施對UART接口的擴(kuò)展。
本文提出了一種SPI擴(kuò)展UART的方法,主要采用SC16IS752芯片進(jìn)行UART接口擴(kuò)展。SC16IS752提供了標(biāo)準(zhǔn)SPI總線接口,只需要微處理器能提供標(biāo)準(zhǔn)的SPI或模擬SPI總線接口。整個(gè)設(shè)計(jì)簡捷、經(jīng)濟(jì),具有通用性。
最后介紹了擴(kuò)展接口在無線數(shù)據(jù)采集集中器中的應(yīng)用,可方便地使用擴(kuò)展出的UART口連接相應(yīng)的無線通信模塊,實(shí)現(xiàn)數(shù)據(jù)的采集和通信。
SPI總線串行外圍設(shè)備接口(SerialPeripheralInterface,SPI)是Motorola公司推出的一種同步串行接口,其硬件功能強(qiáng)大,因此與SPI有關(guān)的軟件比較簡單[2]。一般情況下,實(shí)現(xiàn)SPI通信需要3~4根線:同步時(shí)鐘(SCK)線,用于實(shí)現(xiàn)主器件和從器件在MISO和MOSI線上串行數(shù)據(jù)傳輸?shù)耐?主輸出/從輸入(MOSI)線,用于主器件的輸出或從器件的輸入;主輸入/從輸出(MISO)線,用于主器件的輸入或從器件的輸出;片選控制(CS)線,用于從設(shè)備的選擇。SPI的工作模式有4種,本文采用了其中的一種主模式。
SC16IS752擴(kuò)展芯片SC16IS752是NXP公司推出的一款通過SPI/I2C總線擴(kuò)展為UART接口的芯片[3]。擴(kuò)展出雙通道高性能的UART,并且能到達(dá)5Mbps的數(shù)據(jù)率;提供8個(gè)額外的可編程的I/O腳;還可以提供數(shù)據(jù)速率高達(dá)115.2kbps的IrDA。另外,SC16IS752還具有其他高級的特性,例如自動硬件和軟件流控制、自動的RS485支持和軟件復(fù)位作為UART擴(kuò)展接口芯片,SC16IS752的引腳定義并不復(fù)雜,如圖1所示。
XTAL1、XTAL2引腳用來連接晶振電路,CS/A0用作SPI片選或者I2C總線器件地址選擇A0;I2C/SPI為I2C總線或SPI總線接口選擇;IRQ中斷引腳。其他引腳就主要包括擴(kuò)展后的2個(gè)UART及I/O。帶有SPI接口的微處理器與SC16IS752的連接十分方便;如果不帶SPI接口,則可以通過I/O口來實(shí)現(xiàn)模擬SPI口的功能。