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

  摘  要: 介紹了一種基于單片機(jī)P89LPC931的SPI總線擴(kuò)展異步串行接口UART的裝置,講述了P89LPC931單片機(jī)的開(kāi)發(fā)使用,重點(diǎn)詳細(xì)闡明了擴(kuò)展芯片GM8142的開(kāi)發(fā)使用。用戶可以根據(jù)不同的應(yīng)用環(huán)境靈活配置參數(shù)。本裝置成本低,可靠性高,穩(wěn)定性強(qiáng)。

  關(guān)鍵詞LPC單片機(jī);GM8142;SPI總線

0 引言

  隨著單片機(jī)技術(shù)的不斷發(fā)展,特別是網(wǎng)絡(luò)技術(shù)在測(cè)控領(lǐng)域的廣泛應(yīng)用,由單片機(jī)構(gòu)成的多機(jī)網(wǎng)絡(luò)測(cè)控系統(tǒng)已成為單片機(jī)技術(shù)發(fā)展的一個(gè)方向。單片機(jī)的應(yīng)用已不僅僅局限于傳統(tǒng)意義上的自動(dòng)監(jiān)測(cè)或控制,而是形成了向以網(wǎng)絡(luò)為核心的分布式多點(diǎn)系統(tǒng)發(fā)展的趨勢(shì)。但是,大多數(shù)單片機(jī)都只有一個(gè)串行接口,在多數(shù)情況下限制了這些單片機(jī)的進(jìn)一步應(yīng)用。要實(shí)現(xiàn)單片機(jī)在應(yīng)用系統(tǒng)中的有效通信,就必須對(duì)單片機(jī)進(jìn)行串口擴(kuò)展。

  本文介紹的串口擴(kuò)展器以單片機(jī)P89LPC931[1]為核心,使用SPI總線和芯片GM8142進(jìn)行串口擴(kuò)展,由1路SPI總線擴(kuò)展出4路串口,具有可靠性高、抗干擾性能強(qiáng)、成本低等優(yōu)點(diǎn),用戶可靈活配置參數(shù),非常適合在電力、化工、冶金等工業(yè)控制現(xiàn)場(chǎng)中使用。

1 系統(tǒng)硬件設(shè)計(jì)

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

Image 007.png

  單片機(jī)P89LPC931的電路原理如圖2所示。P89LPC931使用3.3 V電源供電,電阻R3與電容C7構(gòu)成復(fù)位電路。當(dāng)單片機(jī)向芯片GM8142發(fā)出復(fù)位的低電平信號(hào)時(shí),LED點(diǎn)亮。單片機(jī)的引腳分配包括LCD部分、ICP在電路編程部分、KEY按鍵輸入部分、SPI接口部分和UART接口部分。

Image 008.png

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

Image 009.png

2 系統(tǒng)軟件設(shè)計(jì)

  2.1 通信規(guī)約的設(shè)計(jì)

  串口擴(kuò)展器的地址初始化為0x00。串口擴(kuò)展器可以采用RS485或者RS232的接口標(biāo)準(zhǔn)與上位機(jī)進(jìn)行通信。通信采用異步通信方式。通信參數(shù)包括波特率、校驗(yàn)位和幀長(zhǎng)度,它們既可以通過(guò)按鍵與LCD的人機(jī)交互接口設(shè)定,也可以通過(guò)通信方式由上位機(jī)設(shè)定。

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

  2.2 通信模塊設(shè)計(jì)

  上位機(jī)通過(guò)UART接口與串口擴(kuò)展器通信,在P89LPC931的內(nèi)存中申請(qǐng)一個(gè)FIFO,用于接收上位機(jī)發(fā)送來(lái)的數(shù)據(jù),進(jìn)行相關(guān)的處理后,以相應(yīng)的報(bào)文進(jìn)行回答。每個(gè)擴(kuò)展串口在P89LPC931的內(nèi)存中也申請(qǐng)一個(gè)接收FIFO,用于保存從擴(kuò)展串口發(fā)送來(lái)的數(shù)據(jù)。設(shè)置接收FIFO滿標(biāo)志位,當(dāng)接收FIFO滿時(shí),主動(dòng)上送報(bào)文到上位機(jī)。具體的程序流程如圖4所示。

Image 010.png

  2.3 按鍵輸入?yún)?shù)

  串口擴(kuò)展器的接口參數(shù)主要是UART接口的參數(shù)和擴(kuò)展UART接口的參數(shù),包括波特率、校驗(yàn)位和幀長(zhǎng)度,這些參數(shù)既可以通過(guò)按鍵與LCD配合的方式(即人機(jī)交互接口)設(shè)定,也可以通過(guò)上位機(jī)以報(bào)文的方式設(shè)定。在系統(tǒng)中設(shè)定是否允許遠(yuǎn)程修改參數(shù)的值,當(dāng)不允許遠(yuǎn)程修改時(shí),則遠(yuǎn)程通過(guò)報(bào)文修改系統(tǒng)參數(shù)的方式無(wú)效,這時(shí)只允許通過(guò)人機(jī)交互接口設(shè)定系統(tǒng)參數(shù)。

Image 003.png

  設(shè)置5個(gè)按鍵,如表1所示。按鍵按下,則單片機(jī)P89LPC931相關(guān)的引腳輸入為低電平。這5個(gè)按鍵的狀態(tài)也作為與門74LS08的輸入,74LS08的輸出作為P89LPC931的外部中斷1的輸入。通過(guò)按鍵與LCD配合設(shè)定系統(tǒng)參數(shù)的程序流程[4]如圖5所示。

Image 001.png

  2.4 GM8142的開(kāi)發(fā)[3]

  使用GM8142進(jìn)行擴(kuò)展串口通信之前,首先進(jìn)行初始化。SPI的初始化需設(shè)置工作方式和時(shí)鐘頻率。GM8142的初始化需要設(shè)置工作模式、子串口的波特率和數(shù)據(jù)幀長(zhǎng)等,通過(guò)向配置寄存器中寫(xiě)入相應(yīng)的控制字實(shí)現(xiàn)。GM8142一次SPI傳輸要求在一個(gè)片選周期內(nèi)傳輸16 bit數(shù)據(jù),所以使用P89LPC931這樣的8位單片機(jī)要保證在CS拉低后連續(xù)啟動(dòng)2個(gè)8 bit的數(shù)據(jù)傳輸,然后再將CS拉高。這樣對(duì)GM8142來(lái)講,同樣實(shí)現(xiàn)了一次16 bit的傳輸。GM8142收發(fā)數(shù)據(jù)的程序流程如圖6所示。

Image 002.png

  向GM8142中寫(xiě)入數(shù)據(jù)的函數(shù)為SendTo814X,啟動(dòng)一次SPI傳輸,發(fā)送16 bit數(shù)據(jù),返回16 bit數(shù)據(jù)。

  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;

  }

  函數(shù)SendDataToCom實(shí)現(xiàn)向指定的擴(kuò)展串口發(fā)送單字節(jié)的數(shù)據(jù)。

  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;

  }

  函數(shù)ReadRFIFOData實(shí)現(xiàn)讀取接收FIFO的數(shù)據(jù)。

  unsigned int ReadRFIFOData(void)

  {

  unsigned int RevData;

  RevData=SendTo814X(0x00,0x00);

  return RevData;

  }

3 功能測(cè)試與總結(jié)

 ?。?)測(cè)試人機(jī)交互接口,通過(guò)按鍵與LCD配合,能夠正常設(shè)定參數(shù)。

 ?。?)PC作為上位機(jī)利用串口助手這個(gè)工具,通過(guò)RS232接口發(fā)送指定的報(bào)文到串口擴(kuò)展器,從擴(kuò)展串口發(fā)出的數(shù)據(jù),也通過(guò)串口助手顯示出來(lái)。編輯不同的報(bào)文,從PC發(fā)送到串口擴(kuò)展器,均返回相應(yīng)的報(bào)文數(shù)據(jù)。

  (3)PC利用串口助手向擴(kuò)展串口發(fā)送數(shù)據(jù),擴(kuò)展的串口接收到數(shù)據(jù)后,組成相應(yīng)的報(bào)文,在上位機(jī)查詢時(shí),以相應(yīng)的報(bào)文回答。

 ?。?)控制其他參數(shù)不變,修改某一個(gè)參數(shù),例如波特率,重新測(cè)試,均返回相應(yīng)的報(bào)文。

  本裝置以通用的單片機(jī)P89LPC931為核心,外擴(kuò)GM8142擴(kuò)展串口模塊和人機(jī)交互模塊,可應(yīng)用于工業(yè)控制領(lǐng)域要求多串口的場(chǎng)合。經(jīng)過(guò)詳細(xì)測(cè)試,該串口擴(kuò)展器可以實(shí)現(xiàn)數(shù)據(jù)的成功轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)數(shù)據(jù)精確可靠,具有很強(qiáng)的實(shí)用價(jià)值。

參考文獻(xiàn)

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

  [2] 成都國(guó)騰微電子.GM8141/2數(shù)據(jù)手冊(cè)[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ī)交互接口[J].電子測(cè)量技術(shù),2004(3):43-44.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲天天影视| 蜜臀a∨国产成人精品| 亚洲二区免费| 亚洲欧美国产一区二区三区| 一区二区三区久久网| 日韩视频国产视频| 亚洲精品视频二区| 亚洲青涩在线| 亚洲欧洲日夜超级视频| 亚洲国产精品一区二区三区| 一区精品在线| 在线观看不卡av| 亚洲第一久久影院| 极品少妇一区二区| 黄色精品一区二区| 在线观看亚洲一区| 亚洲福利视频三区| 亚洲精品1区| 亚洲免费精品| 亚洲天堂男人| 亚洲欧美日韩综合一区| 午夜精品一区二区三区在线视| 亚洲一区中文字幕在线观看| 亚洲欧美久久久久一区二区三区| 亚洲欧美日韩区| 欧美一区三区二区在线观看| 久久精品水蜜桃av综合天堂| 亚洲黄色精品| 日韩一级片网址| 亚洲天堂成人在线观看| 亚洲欧美成人在线| 久久激情五月丁香伊人| 久久亚洲精选| 欧美精品成人一区二区在线观看| 欧美日韩精品欧美日韩精品一| 欧美午夜影院| 国产日韩精品一区| 伊人成人在线视频| 亚洲精品影院| 亚洲一区二区黄色| 欧美在线观看视频| 亚洲人成小说网站色在线 | 亚洲永久精品国产| 久久爱www久久做| 日韩一区二区高清| 欧美亚洲免费电影| 老色批av在线精品| 欧美天天影院| 国内揄拍国内精品少妇国语| 亚洲激情成人网| 亚洲欧美日韩区| 日韩视频在线观看国产| 午夜精品一区二区三区在线| 久久嫩草精品久久久精品| 欧美久久久久中文字幕| 国产人妖伪娘一区91| 亚洲欧洲一区二区在线播放 | 新片速递亚洲合集欧美合集| 美女视频黄 久久| 国产精品理论片在线观看| 国内精品视频在线观看| 99热免费精品在线观看| 久久黄色级2电影| 亚洲午夜在线| 玖玖玖免费嫩草在线影院一区| 欧美日韩视频专区在线播放 | 亚洲欧美视频一区二区三区| 亚洲精品久久久久久一区二区 | 久久久蜜桃一区二区人| 欧美日韩中文| 激情久久综艺| 亚洲一区二区少妇| 亚洲精品在线视频观看| 欧美专区在线观看一区| 欧美日韩久久不卡| 经典三级久久| 午夜精品久久久久影视| 9人人澡人人爽人人精品| 久久久久久91香蕉国产| 欧美午夜无遮挡| 最新亚洲一区| 久久精品一区| 欧美中文字幕| 国产精品成人免费| 亚洲国产老妈| 久久精品五月| 久久精品国产91精品亚洲| 欧美天堂亚洲电影院在线观看| 亚洲国产精品久久人人爱蜜臀| 欧美一区二区国产| 亚洲综合色婷婷| 欧美日韩中文| 亚洲精品网址在线观看| 91久久久久久国产精品| 久久久爽爽爽美女图片| 国产精品视频在线观看| 一本一本久久a久久精品综合妖精| 亚洲日本免费| 蜜乳av另类精品一区二区| 国产亚洲精品bv在线观看| 亚洲综合精品四区| 亚洲在线1234| 欧美视频日韩视频在线观看| 亚洲欧洲一区二区三区在线观看| 亚洲国产另类 国产精品国产免费| 久久精品国产69国产精品亚洲| 国产精品草莓在线免费观看| 99国产精品一区| 一区二区三区四区精品| 欧美美女bb生活片| 亚洲日本中文| 亚洲最黄网站| 欧美日韩成人一区二区| 亚洲欧洲一区二区三区久久| 亚洲日本一区二区三区| 欧美成人午夜剧场免费观看| 亚洲成人在线网| 亚洲日本久久| 欧美激情bt| 亚洲精品中文字| 一区二区三区日韩精品视频| 欧美日韩成人一区二区| 日韩视频―中文字幕| 在线视频欧美一区| 欧美日韩国产综合视频在线| 亚洲精品视频一区二区三区| 一本色道久久88亚洲综合88| 欧美人成在线视频| 日韩一级视频免费观看在线| 亚洲一区二区影院| 国产精品久久看| 亚洲欧美日韩精品久久亚洲区| 久久国产精品久久国产精品| 国语自产精品视频在线看一大j8 | 午夜久久电影网| 国产区在线观看成人精品| 欧美一区免费视频| 久久综合九九| 91久久中文| 亚洲曰本av电影| 国产美女精品视频免费观看| 久久av在线看| 欧美激情综合五月色丁香小说| 日韩一级精品| 欧美综合77777色婷婷| 国内外成人免费激情在线视频网站 | 国产精品日韩在线播放| 欧美亚洲一区| 免费在线观看成人av| 日韩视频免费观看高清在线视频| 亚洲综合999| 国产一区二区三区久久久| 91久久精品国产| 欧美三区在线视频| 性欧美大战久久久久久久久| 蜜臀va亚洲va欧美va天堂| 亚洲美女电影在线| 久久超碰97中文字幕| 亚洲国产精品999| 亚洲一区欧美| 国产自产女人91一区在线观看| 日韩视频精品在线观看| 国产精品男女猛烈高潮激情| 欧美在线观看网址综合| 欧美国产日产韩国视频| 亚洲无限av看| 久热精品在线| 亚洲少妇自拍| 久久人人九九| 99日韩精品| 久久人91精品久久久久久不卡| 亚洲精品视频免费在线观看| 久久精品国产精品亚洲| 最新精品在线| 久久九九精品| 日韩视频三区| 久久深夜福利| 一区二区三区国产在线| 久久一区中文字幕| 在线视频你懂得一区二区三区| 久久男人资源视频| 宅男噜噜噜66国产日韩在线观看| 久久精品色图| 亚洲最快最全在线视频| 久久躁狠狠躁夜夜爽| 亚洲一区在线看| 欧美极品在线播放| 久久精品视频免费观看| 国产精品久久久久久亚洲毛片 | 欧美一区影院| 日韩午夜av| 男人的天堂亚洲| 欧美在线地址| 欧美亚洲成人免费| 亚洲麻豆视频| 一区二区三区亚洲| 欧美在线看片| 这里只有精品电影| 欧美精品免费视频| 亚洲国产日韩欧美综合久久|