《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于LPC系列單片機的串口擴展器設計
基于LPC系列單片機的串口擴展器設計
2015年微型機與應用第13期
唐洪富
中國電子信息產業集團有限公司第六研究所,北京 100083
摘要: 介紹了一種基于單片機P89LPC931的SPI總線擴展異步串行接口UART的裝置,講述了P89LPC931單片機的開發使用,重點詳細闡明了擴展芯片GM8142的開發使用。用戶可以根據不同的應用環境靈活配置參數。本裝置成本低,可靠性高,穩定性強。
Abstract:
Key words :

  摘  要: 介紹了一種基于單片機P89LPC931的SPI總線擴展異步串行接口UART的裝置,講述了P89LPC931單片機的開發使用,重點詳細闡明了擴展芯片GM8142的開發使用。用戶可以根據不同的應用環境靈活配置參數。本裝置成本低,可靠性高,穩定性強。

  關鍵詞LPC單片機;GM8142;SPI總線

0 引言

  隨著單片機技術的不斷發展,特別是網絡技術在測控領域的廣泛應用,由單片機構成的多機網絡測控系統已成為單片機技術發展的一個方向。單片機的應用已不僅僅局限于傳統意義上的自動監測或控制,而是形成了向以網絡為核心的分布式多點系統發展的趨勢。但是,大多數單片機都只有一個串行接口,在多數情況下限制了這些單片機的進一步應用。要實現單片機在應用系統中的有效通信,就必須對單片機進行串口擴展。

  本文介紹的串口擴展器以單片機P89LPC931[1]為核心,使用SPI總線和芯片GM8142進行串口擴展,由1路SPI總線擴展出4路串口,具有可靠性高、抗干擾性能強、成本低等優點,用戶可靈活配置參數,非常適合在電力、化工、冶金等工業控制現場中使用。

1 系統硬件設計

  本系統功能是通過UART接口接收來自外部(例如PC,定義為上位機)的數據,通過指定的擴展串口將數據發送出去,或者從擴展串口讀取數據,通過UART發送到上位機。系統的整體設計如圖1所示。電源電路為整個系統供電,其中也包括RS232/RS485的電平轉換電路。復位電路完成單片機的外部復位,P89LPC931既可以使用外部高電平復位,也可以內部復位。串口電路完成單片機程序的ISP下載,與外界(如PC)交互,接收外界數據并通過擴展的串口發送,或者接收擴展串口的數據發送到外界設備。人機交互包括按鍵輸入和LCD顯示輸出,完成對系統參數的配置信息的輸入,顯示轉發的數據或配置參數。

Image 007.png

  單片機P89LPC931的電路原理如圖2所示。P89LPC931使用3.3 V電源供電,電阻R3與電容C7構成復位電路。當單片機向芯片GM8142發出復位的低電平信號時,LED點亮。單片機的引腳分配包括LCD部分、ICP在電路編程部分、KEY按鍵輸入部分、SPI接口部分和UART接口部分。

Image 008.png

  芯片GM8142[2]的電路原理如圖3所示。GM8142使用的晶振頻率為3.686 4 MHz。RX和TX分別是擴展串口的接收和發送引腳,輸出的IRQ作為單片機P89LPC931的外部中斷輸入。

Image 009.png

2 系統軟件設計

  2.1 通信規約的設計

  串口擴展器的地址初始化為0x00。串口擴展器可以采用RS485或者RS232的接口標準與上位機進行通信。通信采用異步通信方式。通信參數包括波特率、校驗位和幀長度,它們既可以通過按鍵與LCD的人機交互接口設定,也可以通過通信方式由上位機設定。

  系統與上位機的通信報文[3]定義如下:(1)設定串口工作參數的報文A1,返回確認設定串口工作參數的報文R1和系統不允許遠程設定參數的報文R2;(2)設定SPI功能寄存器參數的報文A3,確認設定SPI功能寄存器的報文R3和不允許遠程設定的報文R4;(3)讀取SPI功能寄存器參數的報文A5和返回SPI功能寄存器參數的報文R5;(4)發送數據到指定擴展串口的報文A6和確認已發送數據到指定擴展串口的報文R6;(5)查詢從擴展串口上送數據的報文A7和返回的報文R7、R8;(6)緩沖區滿,主動上送數據的報文R9;(7)重新啟動設備的報文A10和確認已重啟的報文R10;(8)回答接收無效的報文R11。

  2.2 通信模塊設計

  上位機通過UART接口與串口擴展器通信,在P89LPC931的內存中申請一個FIFO,用于接收上位機發送來的數據,進行相關的處理后,以相應的報文進行回答。每個擴展串口在P89LPC931的內存中也申請一個接收FIFO,用于保存從擴展串口發送來的數據。設置接收FIFO滿標志位,當接收FIFO滿時,主動上送報文到上位機。具體的程序流程如圖4所示。

Image 010.png

  2.3 按鍵輸入參數

  串口擴展器的接口參數主要是UART接口的參數和擴展UART接口的參數,包括波特率、校驗位和幀長度,這些參數既可以通過按鍵與LCD配合的方式(即人機交互接口)設定,也可以通過上位機以報文的方式設定。在系統中設定是否允許遠程修改參數的值,當不允許遠程修改時,則遠程通過報文修改系統參數的方式無效,這時只允許通過人機交互接口設定系統參數。

Image 003.png

  設置5個按鍵,如表1所示。按鍵按下,則單片機P89LPC931相關的引腳輸入為低電平。這5個按鍵的狀態也作為與門74LS08的輸入,74LS08的輸出作為P89LPC931的外部中斷1的輸入。通過按鍵與LCD配合設定系統參數的程序流程[4]如圖5所示。

Image 001.png

  2.4 GM8142的開發[3]

  使用GM8142進行擴展串口通信之前,首先進行初始化。SPI的初始化需設置工作方式和時鐘頻率。GM8142的初始化需要設置工作模式、子串口的波特率和數據幀長等,通過向配置寄存器中寫入相應的控制字實現。GM8142一次SPI傳輸要求在一個片選周期內傳輸16 bit數據,所以使用P89LPC931這樣的8位單片機要保證在CS拉低后連續啟動2個8 bit的數據傳輸,然后再將CS拉高。這樣對GM8142來講,同樣實現了一次16 bit的傳輸。GM8142收發數據的程序流程如圖6所示。

Image 002.png

  向GM8142中寫入數據的函數為SendTo814X,啟動一次SPI傳輸,發送16 bit數據,返回16 bit數據。

  unsigned int SendTo814X(unsigned char chigh,unsigned char clow)

  {

  unsigned char cTempHigh,cTempLow;

  unsigned int RevData;

  SPI_CS=0;

  SPDAT=chigh;

  while((SPSTAT&0x80)==0);

  cTempHigh=SPDAT;

  SPDAT=clow;

  while((SPSTAT&0x80)==0);

  cTempLow=SPDAT;

  SPI_CS=1;

  RevData=cTempHigh;

  RevData=(RevData<<8)+cTempLow;

  return RevData;

  }

  函數SendDataToCom實現向指定的擴展串口發送單字節的數據。

  unsigned int SendDataToCom(unsigned char n,unsigned char ct)

  {

  unsigned char ch=0x80;

  unsigned int RevData;

  ch=ch|(n<<3);

  RevData=SendTo814X(ch,c);

  return RevData;

  }

  函數ReadRFIFOData實現讀取接收FIFO的數據。

  unsigned int ReadRFIFOData(void)

  {

  unsigned int RevData;

  RevData=SendTo814X(0x00,0x00);

  return RevData;

  }

3 功能測試與總結

  (1)測試人機交互接口,通過按鍵與LCD配合,能夠正常設定參數。

  (2)PC作為上位機利用串口助手這個工具,通過RS232接口發送指定的報文到串口擴展器,從擴展串口發出的數據,也通過串口助手顯示出來。編輯不同的報文,從PC發送到串口擴展器,均返回相應的報文數據。

  (3)PC利用串口助手向擴展串口發送數據,擴展的串口接收到數據后,組成相應的報文,在上位機查詢時,以相應的報文回答。

  (4)控制其他參數不變,修改某一個參數,例如波特率,重新測試,均返回相應的報文。

  本裝置以通用的單片機P89LPC931為核心,外擴GM8142擴展串口模塊和人機交互模塊,可應用于工業控制領域要求多串口的場合。經過詳細測試,該串口擴展器可以實現數據的成功轉發,轉發數據精確可靠,具有很強的實用價值。

參考文獻

  [1] 張毅剛.單片機原理及應用[M].北京:高等教育出版社,2003.

  [2] 成都國騰微電子.GM8141/2數據手冊[Z].2006.

  [3] SARIKAYA B, KOUKOULIDIS V, ESWARA S, et al. Analysis and testing of application layer protocols with an application to FTAM[J]. IEEE Transactions on Communications, 1992, 40(1):7-11.

  [4] 王忠義,張有光,潘懷勇.基于MCS-51人機交互接口[J].電子測量技術,2004(3):43-44.


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲综合精品一二三区在线 | 欧美日韩精品在线 | 大杳蕉伊人狼人久久一本线 | 91九色偷拍 | 成人免费xx | 久久成人亚洲香蕉草草 | 97久久人人做人人爽人人澡 | 久久免费高清视频 | 国产精品亚洲国产三区 | 亚洲va欧美va人人爽夜夜嗨 | 免费黄色毛片 | 黄色网址中文字幕 | 91精品欧美产品免费观看 | 亚洲一级大黄大色毛片 | 在线天堂中文在线网 | 又黄又爽又成人免费视频 | 女人牲交视频一级毛片 | 99九九视频高清在线 | 国产成人在线视频播放 | 2018天天干天天操 | 成人性生交大片免费看午夜a | 视频在线观看h | 久久人人爽人人爽人人爽 | 国产一二三四区中 | 色播在线永久免费视频网站 | 一区二区不卡在线 | 毛片一级在线观看 | 国产成人拍精品视频网 | 丁香五月缴情在线 | 99视频精品全部 在线 | 国产欧美日韩另类 | 能在线观看的一区二区三区 | 久久久久国产一级毛片高清版 | 日韩精品免费看 | 色婷婷色 | 国产高清视频在线观看不卡v | 亚洲 欧美 日韩 在线 香蕉 | 欧美日韩性生活 | 艳妇乳肉豪妇荡乳a亚洲 | 伊人精品影院一本到欧美 | 欧美精品亚洲精品日韩专区va |