江朝暉+陸元洲+王鵬
(安徽農業大學信息與計算機學院,安徽 合肥 230036)
摘要:串行接口是現代電子系統設計的主流技術,然而串行總線種類較多,其協議、時序和器件較為繁雜,給學生理解、掌握和應用帶來困難。本文在介紹串行接口基本概念的基礎上,重點分析、比較了幾種最常用的串行擴展接口和串行通信接口,并設計了一個基于單片機的串口應用小系統。本文對電子信息專業本科生學習和應用具有參考價值。
關鍵詞:電子系統設計;串行擴展接口;串行通信接口;應用實例
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2016)50-0050-03
一、引言
在電子系統中,外設器件、微處理器、上位機之間的數據交換有并行和串行兩種基本通信模式。總的來說,串行通信是指數據在時鐘的同步作用下逐位傳送,與并行模式相比,具有硬件連接簡單、可靠性高、擴展性好、電路板面積較小、成本較低、適用于長距離應用等優點,隨著CPU、芯片的工作頻率提高,以及串行總線的功能增強,數據吞吐容量小、信號傳輸較慢等缺點也得到逐步改善,因此成為現代電子系統設計和應用的主流技術[1,2]。然而串行總線種類較多,其協議、時序和器件較為繁雜,給學生的理解、掌握和應用帶來困難[3]。本文著重分析、比較了幾種最常用的串行擴展接口和串行通信接口技術,并設計了一個基于單片機的串口應用小系統,供電子信息工程專業本科生學習、參考[4,5]。
二、常用串行接口總線及比較[1,2]
串行接口是一個總體概念,一般又劃分為器件級的串行擴展接口和設備級的串行通信接口。串行擴展接口是指微處理器與外設芯片之間通過串口連接進行數據或信息的交互,最常見的串口類型有1-Wire總線、SPI總線和I2C總線。目前集成了上述串口總線的芯片種類眾多,包括傳感器芯片、A/D轉換器、D/A轉換器、實時時鐘RTC、數據存儲器、專用DDS芯片等等,高檔的單片機、嵌入式微處理器一般都有專門的SPI、I2C總線擴展口,兩者之間的硬件連接和軟件編程較為簡單。而常用的89C51、52等低檔單片機由于沒有集成SPI、I2C總線接口,需要通過通用I/O口與串口器件連接,并利用軟件模擬產生SPI、I2C等總線時序,實現數據的交換。表1簡要比較了三種常用的串行擴展接口及其特點。
單總線(1-Wire)是Dallas公司推出的外圍串行擴展總線,采用單根信號線完成數據的雙向傳輸。單總線技術有三個顯著的特點:單總線芯片通過一根信號線進行地址信息、控制信息和數據信息的傳送;每個單總線芯片都具有全球唯一的訪問序列號,當多個單總線器件接入到同一單總線上時,對所有單總線芯片的訪問都通過該唯一序列號區分;單總線芯片在工作過程中可以不要外接電源,而通過它本身具有的“總線竊電”技術從信號線上獲取電源。單總線結構如圖1。
單總線器件的時序不盡相同。以典型單總線器件溫濕度傳感器DHT22來說,通信格式為:微處理器把總線SDA拉低至少800μs,通知傳感器準備數據;傳感器把SDA拉低80μs再接高80μs響應;微處理器通過SDA一次性讀出40位數據,高位在前,濕度、溫度分辨率都是16Bit,且讀出值都是實際值的10倍,其中溫度最高位Bit15等于1表示負溫度、等于0表示正溫度,8位校驗位=濕度高位+濕度低位+溫度高位+溫度低位。串行外設接口(Serial Peripheral Interface,SPI)總線是原Motorola公司推出的一種同步串行外設接口總線,使用4條信號線,一般是單主結構,即系統中只有一個主器件(通常是微處理器),其余的外圍器件均為從器件。在點對點通信時,不需要進行尋址操作,且為全雙工通信,具有簡單高效的特點;在多個從器件系統中,每個從器件需要獨立的片選或使能信號。SPI兩端在同一個時鐘下工作,是一種真正的同步方式,不同于異步串行通信(UART)的兩端有各自的串行通信時鐘,且傳輸速率最高達數十MHZ,遠遠高于UART。SPI總線結構及典型時序如圖2所示。
I2C總線(Inter-Integrated-Circuit)是一種由Philips公司開發的兩線式串行總線,由雙向串行時鐘線SCL和雙向串行數據線SDA組成,用于連接微處理器及其外設器件,最主要的優點是簡單、高效。I2C是真正的多主機總線,每個連接到總線上的器件都有唯一的地址,器件識別由硬件設置和軟件尋址組成,不需要片選信號。I2C總線的時序較為復雜,規定了嚴格的數據有效位、起始信號、終止信號和應答信號。傳送的字節數沒有限制,但每個字節必須是8位,且高位在前,第9位是應答信號,應答時鐘由主器件產生,而應答位則由接收器件產生。I2C總線結構及基本時序如圖3所示。
設備級的串行通信是指微處理器之間、微處理器與上位機之間通過串行總線和接口進行信息交換。最常用的串行通信接口標準有RS-232C和RS-485。RS-232C標準是美國電子工業聯合會EIA(Electronic Industry Association)制定的一種串行物理接口標準,適合的數據傳送速率為0~20Kbps。RS-485克服了RS-232C標準的缺點,具有良好的抗噪聲干擾性能、較長的傳輸距離和多站連接等優點,廣泛應用在分布式測控系統中。兩者的主要技術參數見表2。
三、基于單片機的串口應用實例
為了便于理解和掌握,設計了一個基于單片機的串口應用小系統。采用單總線接口的傳感器芯片DHT22實時采集溫、濕度,SPI總線接口的DS1302時鐘芯片獲取實時時間和日期,I2C總線接口的AT24C02 E2PROM進行數據存儲。以STC12C5A60S2單片機為CPU,利用軟件模擬產生串口總線時序,并通過RS-232C接口實現單片機與PC的通信。電路原理圖如圖4所示,鍵盤、LCD和電源電路略去。核心軟件是DHT22、DS1302和AT24C02的讀寫,參考器件手冊中的時序要求編寫。
四、結束語
各種外設器件、微處理器、上位機之間的串行接口與通信已成為現代電子系統設計、應用的主流技術。本文介紹了串行接口的基本概念,歸納、比較了最常用的1-Wire、SPI、I2C接口總線以及RS-232C、RS-485通信總線的特點,并設計了一個基于單片機的串口應用實例,包括1-Wire接口的溫濕度采集、SPI接口的實時時鐘、I2C接口的E2PROM存儲以及RS-232C串口通信。本文具有較強的針對性和實用性,可幫助初學者深入理解和靈活運用,提高實踐、創新能力。
參考文獻:
[1]孫曉云,劉東輝,劉朝英.接口與通信技術原理與應用[M].北京:中國電力出版社,2007.
[2]賈立新,王涌,陳怡.電子系統設計與實踐(第3版)[M].北京:清華大學出版社,2014.
[3]江朝暉.電子系統設計教學的問題分析與方法探討[J].教育教學論壇,2013,(3):80-81.
[4]李俊萩,張晴暉,呂丹桔,等.電子信息工程專業綜合實訓教學模式探索[J].教育教學論壇,2016,(7):117-119.
[5]江朝暉.地方性農業高校電子信息類人才創新培養模式研究與實踐[J],高教學刊,2015,(20):34-35.