<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)與PC機(jī)之間并行通訊的一種實(shí)現(xiàn)方法

          單片機(jī)與PC機(jī)之間并行通訊的一種實(shí)現(xiàn)方法

          作者: 時(shí)間:2012-02-04 來(lái)源:網(wǎng)絡(luò) 收藏

            PC機(jī)并行打印機(jī)適配器接口具有5根狀態(tài)輸入線(xiàn),可通過(guò)讀379H I/O端口把外引線(xiàn)上的 狀態(tài)信號(hào)讀入PC機(jī),該端口輸入緩沖器與狀態(tài)輸入線(xiàn)的對(duì)應(yīng)情況如表3所示。

          表3 379H I/O端口狀態(tài)信號(hào)格式

          輸入數(shù)據(jù)D7D6 D5D4D3D2D1D0
          外引線(xiàn)BUSY單片機(jī)與PC機(jī)之間并行通訊的一種實(shí)現(xiàn)方法PESLCT單片機(jī)與PC機(jī)之間并行通訊的一種實(shí)現(xiàn)方法XXX


            對(duì)于雙機(jī)通訊來(lái)說(shuō),PC機(jī)可通過(guò)該端口讀入數(shù)據(jù),并且一般只使用D4到D7這4位。另外,由于D7位BUSY信號(hào)反相,可接一非門(mén)加以校正。注意:如果采用中斷方式,中斷請(qǐng)求信號(hào)必須從D6位 ACK引入,那么輸入數(shù)據(jù)線(xiàn)只能使用D3、D4、D5、D7,數(shù)據(jù)的重組稍微麻煩些。

          4 硬件接口電路設(shè)計(jì)

            該的原理框圖如圖2所示,由PC機(jī)、接口以及包括雙端口RAM的單片機(jī) 控制系統(tǒng)組成。

          單片機(jī)與PC機(jī)之間并行通訊的一種實(shí)現(xiàn)方法

          圖2 原理框圖

            單片機(jī)控制系統(tǒng)與PC機(jī)之間的并行通訊是通過(guò)對(duì)雙端口RAM的讀寫(xiě)實(shí)現(xiàn)的。單片機(jī)對(duì)雙端口RAM的訪(fǎng)問(wèn)與片外擴(kuò)展RAM沒(méi)有區(qū)別,而PC機(jī)側(cè)對(duì)雙端口RAM的讀寫(xiě)則需設(shè)計(jì)一接口電路才能實(shí)現(xiàn)。從以上的分析可以看出,PC機(jī)并行打印機(jī)適配器接口共有13根輸出線(xiàn)和5 根輸入線(xiàn)可供訪(fǎng)問(wèn)雙端口RAM,而雙端口RAM IDT7132的地址總線(xiàn)寬度是11位、數(shù)據(jù)總線(xiàn)的寬度是8位,因此必須使用鎖存器74LS373實(shí)現(xiàn)地址和數(shù)據(jù)總線(xiàn)的共享,使用雙路開(kāi)關(guān)74LS157 實(shí)現(xiàn)將 IDT7132的8位數(shù)據(jù)分兩次讀入PC機(jī)。硬件接口電路如圖3所示。

            端口RAM的控制字、地址、輸出數(shù)據(jù)都是通過(guò)PC機(jī)對(duì)378H端口寫(xiě)操作發(fā)出的,3個(gè)74LS37 3的鎖存命令以及74LS157的控制命令則是通過(guò)對(duì)37A端口寫(xiě)操作實(shí)現(xiàn)的。另需注意:當(dāng)PC機(jī) 從雙端口RAM中讀數(shù)據(jù)時(shí),應(yīng)控制H3的單片機(jī)與PC機(jī)之間并行通訊的一種實(shí)現(xiàn)方法為高電平,使H3輸出呈高阻狀態(tài),以避免對(duì)讀入數(shù)據(jù) 產(chǎn)生影響。而PC機(jī)向雙端口RAM中寫(xiě)數(shù)據(jù)時(shí),H3的單片機(jī)與PC機(jī)之間并行通訊的一種實(shí)現(xiàn)方法應(yīng)為低電平。

            為方便實(shí)時(shí)性的要求,可將雙端口RAM右側(cè)的片選信號(hào)單片機(jī)與PC機(jī)之間并行通訊的一種實(shí)現(xiàn)方法單片機(jī)與PC機(jī)之間并行通訊的一種實(shí)現(xiàn)方法相連(如圖中虛線(xiàn)所示),借用PC機(jī)打印中斷IRQ7采用中斷方式進(jìn)行并行通訊。單片機(jī)控制系統(tǒng)側(cè)是主動(dòng)方,單片機(jī)在每個(gè)控制周期最后將各項(xiàng)數(shù)據(jù)寫(xiě)入雙端口RAM,然后由單片機(jī)與PC機(jī)之間并行通訊的一種實(shí)現(xiàn)方法發(fā)出中斷請(qǐng)求。

          5 軟件設(shè)計(jì)

            下面給出用Turbo C2.0編寫(xiě)的非中斷方式用于讀寫(xiě)操作的兩個(gè)函數(shù)。
            Void readdata(unsigned char read_address_L, unsigned char read_address_H,
            unsigned char read_data)
            {
            outportb(0x378,0x70); /*寫(xiě)雙端口RAM控制字且使H3的單片機(jī)與PC機(jī)之間并行通訊的一種實(shí)現(xiàn)方法為高電平*/
            outportb(0x37a,0xf);
            outportb(0x37a,0xb);
            outportb(0x378,read_address_L);
            outportb(0x37a,0xa);
            outportb(0x37a,0xb);/*低8位地址送H2鎖存*/
            outportb(0x378,read_address_H);
            outportb(0x37a,0xf);
            outportb(0x37a,0xb); /*高3位地址送H1鎖存*/
            outportb(0x378,0x60); /*發(fā)讀命令*/
            outportb(0x37a,0xf);
            outportb(0x37a,0xb);
            read_data=inportb(0x379)0xf; /*讀低4位數(shù)據(jù)*/
            outportb(0x37a,0x9);
            read_data+=(inportb(0x379)0xf)4; /*讀高4位,再與低4位合并*/
            }
            
            Void writedata(unsigned char write_address_L, unsigned char write_address_H,
            unsigned char write_data)
            {
            outportb(0x378,0x20); /*寫(xiě)雙端口RAM控制字且使H3的單片機(jī)與PC機(jī)之間并行通訊的一種實(shí)現(xiàn)方法為低電平*/
            outportb(0x37a,0xf);
            outportb(0x37a,0xb);
            outportb(0x378,write_address_L);
            outportb(0x37a,0xa);
            outportb(0x37a,0xb); /*低8位地址送H2鎖存*/
            outportb(0x378,write_address_H);
            outportb(0x37a,0xf);
            outportb(0x37a,0xb); /*高3位地址送H1鎖存*/
            outportb(0x378,write_data);
            outportb(0x37a,0x3);
            outportb(0x37a,0xb); /*輸出數(shù)據(jù)送H3鎖存*/
            outportb(0x378,0x0); /*寫(xiě)命令*/
            outportb(0x37a,0xf);
            outportb(0x37a,0xb);
            }

          6 結(jié)論

            利用雙端口RAM和PC機(jī)的并行實(shí)現(xiàn)單片機(jī)與PC機(jī)之間并行通訊,具有接口電路簡(jiǎn)單、對(duì)PC機(jī)側(cè)不需作任何改動(dòng)、易于實(shí)現(xiàn)以及通訊速度快等優(yōu)點(diǎn),選用CPU為486DX4/10 0的PC機(jī)通訊速率可達(dá)30kbyte/s,大大超過(guò)了串行通訊。該方案已成功地應(yīng)用于以MCS196KC 為控制核心的機(jī)車(chē)柴油機(jī)數(shù)字式電子調(diào)速器的研制中,通過(guò)保留的歷史數(shù)據(jù)為進(jìn)一步改善調(diào)速器性能,特別是控制算法打下了基礎(chǔ)。另外,該方案與筆記本電腦相結(jié)合,在今后數(shù)字式 電子調(diào)速器產(chǎn)品中可望擴(kuò)展成便攜式調(diào)試監(jiān)控工具。

          參考文獻(xiàn)
          [1]呂景瑜.微型計(jì)算機(jī)接口技術(shù)[M].北京:科學(xué)出版社,1995.
          [2]錢(qián)占軍.利用筆記本電腦打印機(jī)口實(shí)現(xiàn)數(shù)據(jù)采集[J].電子技術(shù)應(yīng)用,1995( 6).
          [3]張利. PC機(jī)打印口的原理及應(yīng)用開(kāi)發(fā)[M].北京:清華大學(xué)出版社,1996.


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();