《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 一種8路串口轉換PCI總線的設計方案
一種8路串口轉換PCI總線的設計方案
摘要: 隨著Internet的發展,越來越多的計算機或設備通過串口通信方式接入網絡,實現信息共享和設備的集中控制和管理。多端口擴展已成為通信設備接入的重要環節。利用串口進行通信具有結構簡單,線路成本低的優點,廣泛應用于各個領域。而PCI總線,即外圍器件互連總線,是目前應用最廣泛、最流行的一種高速同步總線。由于大部分I/O設備是沒有PCI總線功能的,開發多端口通用串口和PCI總線的接口卡也就成為技術發展的必然要求。本系統采用專用芯片XR17D158開發了基于PCI總線的8路RS-232高速串行通訊卡,為通信設備提供額外的高性能串行接口,適用于連接各類串行設備。
Abstract:
Key words :


1 引言

隨著Internet的發展,越來越多的計算機或設備通過串口通信方式接入網絡,實現信息共享和設備的集中控制和管理。多端口擴展已成為通信設備接入的重要環節。利用串口進行通信具有結構簡單,線路成本低的優點,廣泛應用于各個領域。而PCI總線,即外圍器件互連總線,是目前應用最廣泛、最流行的一種高速同步總線。由于大部分I/O設備是沒有PCI總線功能的,開發多端口通用串口和PCI總線的接口卡也就成為技術發展的必然要求。本系統采用專用芯片XR17D158開發了基于PCI總線的8路RS-232高速串行通訊卡,為通信設備提供額外的高性能串行接口,適用于連接各類串行設備。

 

2系統硬件設計

系統硬件主要包括主芯片XR17D158、8路UART接口和串行配置寄存器EEPROM。2.1 XR17D158模塊介紹

在很多通信系統中,對信號傳輸的帶寬和速度有很很高的要求,而PCI總線非常適合將高速信號經接口芯片和主機橋接在一起。本文采用Exar公司推出的一種兼容3.3V和5V的PCI總線UART芯片XR17D158, 它具有PCI接口和UART結構,滿足PCI2.3規范,工作頻率為33MHz,32位的數據總線可以充分利用CPU帶寬,傳送/接收更多數據,支持8個通道UART轉換PCI,減少系統開銷、節約了電路板空間。為下載CPU的處理信息,每一個通道都擁有帶可編程觸發電平的64字節發送/接收緩沖FIFO,可分別以高達921.6kbps的速率對波特率進行編程。

 

500)this.style.width=500;" border=0>

 

2.2 XR17D158寄存器配置

XR17D158具有三組不同的寄存器。

(1)PCI局部總線配置空間寄存器 PCI插卡插入系統后,系統BIOS將根據讀到的插卡信息并結合系統情況為插卡分配存儲地址、端口地址和中斷等信息,實現即插即用的自動配置,從而免除了人工操作,這些信息都保存在外接的EEPROM中,在上電時XR17D158會檢測EEPROM是否有效,系統以此來標識PCI卡;

(2)設備配置寄存器 提供從PCI數據總線向每一UART通道的接收/發送數據FIFO緩沖存儲器的傳輸方式,它提供了對UART傳輸和各種功能狀態的監控。寄存器占用4k PCI總線存儲器地址空間。這些地址由基址加上偏移量得到,偏移量保存在PCI局部總線配置寄存器的BAR寄存器0x10[31:12]。這些寄存器控制或監控所有8通道UART的功能狀態信息,包括中斷控制和狀態,16位通用定時器控制和狀態,多用途輸入/輸出控制和狀態,休眠模式控制,軟復位控制以及設備標識和版本號信息等等;

(3)UART[7:0]配置寄存器 每路UART通道都有內部UART配置寄存器作為串行數據傳輸控制和狀態信息指示,所有8組通道寄存器嵌入設備配置寄存器空間,其寄存器配置偏移地址為:UART[M]=0x00N00,其中M表示通道序號,N=2×M。

XR17D158有8路UART[7:0],每路通道都有深度為64的發送/接收緩沖FIFO,符合16550規范的控制/狀態寄存器以及為每路UART通道提供發送/接收時鐘的波特率發生器。

每路通道都有單獨的具有預分頻的可編程波特率發生器(BRG),用以獲得16X或8X的串口數據接收/發送的采樣時鐘。預分頻系數可由軟件在MCR寄存器中設置,MCR[7]=0,預分頻系數為1;MCR[7]=1,預分頻系數為4。經過預分頻得到的時鐘還要經過內置的分頻器分頻,以獲得所需要的發送/接收時鐘信號,其中分頻器的分頻系數由每路UART通道的DLM和DLL寄存器編程得到,波特率由下面公式計算得到:

500)this.style.width=500;" border=0>

假設外部輸入時鐘為14.7456MHz,通過相應的寄存器設置,使RS-232通道得到最大波特率921.1kps。編程過程如下:

(1)使能DLM,DLL寄存器 寫入0x80到相應UART通道的LCR寄存器;

(2)分頻系數確定 設置DLM=00,DLL=01;

(3)設定預分頻系數相關寄存器MCR

a.使能MCR[7:5] 設置UART通道EFR寄存器EFR[4]=1;

b.預分頻系數的設定 設置MCR[7]=0;

c.鎖存MCR寄存器設置 設置EFR[4]=0;

2.3 8路UART和XR17D158接口設計

由于RS-232的TTL電平與芯片的CMOS電平不兼容,所以兩者之間需要加電平轉換電路。本系統采用TI公司的MAX3238芯片實現電平轉換及串口通信功能;兼容5V邏輯輸入,內含3路接收、5路發送串行通信接口,最大數據傳輸速率可達250Kbps。具有低功耗、高數據速率、增強型ESD保護等特性。

XR17D158的UART接口就像一個8位的輸入和輸出端口,它可以從發送緩沖FIFO或者接收緩沖FIFO中讀寫數據。當主機有數據要發送時,它只需將數據按字節格式(8位寬)發送到UART即可。當UART接收到來自外部串行設備的數據時,會把數據緩存在其FIFO中(同樣是8位寬),然后通過一個內部寄存器位或硬件中斷信號向主機指示該數據已可以使用。另外,XR17D158的UART接口還具有完整的調制解調控制功能,包括:容許發送(CTS);請求發送(RTS);數據設備準備好(DSR);數據終端準備好(DTR);振鈴指示(RI);載波檢測(DCD)。本文只給出了一路UART和主芯片接口,其他幾路類似。

 

 

500)this.style.width=500;" border=0>

 

 

2.4 UART接口工作過程

發送數據過程 有效數據(64位)由主機寫入接口中的輸入緩沖FIFO寄存器,當發送保持寄存器(THR)清空標志位ISR[1]=1,表示發送緩沖FIFO中的數據減少到滿足設定的觸發中斷條件而引起中斷,在輸出移位寄存器(TSR)中,由發送控制邏輯在待發送數據加上起始位、奇偶校驗位和停止位,并按設定的時鐘頻率逐位移出數據。

接收數據過程 接收移位寄存器(RSR)使用16×或8×時鐘作為定時器,當檢測到起始位下降沿時,將計數器清零,并開始采用時鐘計數,當計數器計到8或4時,表示已到達起始位的中間位置,此時采樣值仍為0,說明是真正的起始位,余下的數據位和停止位隨后也被采樣。如果停止位采樣正確(采樣值為1),則字符被接收,并裝入接收保持寄存器(RHR),如果接收到的數據未達到設定的FIFO觸發條件,RHR產生以接收數據準備好中斷(ISR[2]=1),同時流向控制信號RTS# / DTR#繼續保持有效,允許UART接口繼續接收外部串行數據。

PCI總線接收/發送數據

XR17D158支持在映射的存儲器地址進行PCI突發模式讀/寫,接收緩沖FIFO和發送緩沖FIFO可以對這些獨立的存儲器進行讀/寫,這些存儲器地址可以通過計算得到:M=2N+1,其中N為UART通道序號。

主機利用PCI總線從XR17D158的接收緩沖FIFO讀取數據一般有兩種方式:查詢方式和中斷方式。無論采取哪種方式,在讀取緩沖FIFO數據之前必須先讀取設備的配置寄存器中設備ID寄存器(DVID),得到確認之后帶有狀態的FIFO寄存器中的數據才能被讀取。如果在這過程中,還有其他UART通道寄存器數據需要被讀取,必須重復讀取設備ID寄存器(DVID),確認UART通道類型,再進行其他操作。這兩種實現方式編程步驟如下:

(1)查詢方式

a.讀取線路狀態寄存器(LSR)

b.讀取設備號(DVID)

c.讀取帶有狀態信息的FIFO數據

(2)中斷實現方式

a.讀取全局中斷寄存器INT0(地址0x080)

b.讀取INT1,INT2,INT3寄存器用以確定中斷通道(地址0x081-0x083)

c.讀取設備號(DVID)

d.讀取帶有狀態信息的接收FIFO數據

特別注意的是,當主機讀取接收到的帶有線路狀態寄存器(LSR)信息的數據時,主機必須以16位或32字節的形式讀取數據,這樣做的目的是為了保證帶有差錯標記的數據的完整性。

3 驅動程序設計

基于Windows NT串口通信驅動程序設計中,應用較廣泛的有:利用MSCOMM控件進行編程;利用Windows API函數進行設計。串口通信Microsoft Communications Control(簡稱為MSComm)是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,它為應用程序提供了通過串行接口收發數據的簡便方法。MSComm控件通過串行端口傳輸和接收數據,為應用程序提供串行通訊功能。而用Windows API通信較為復雜,其中要涉及到對Windows內核機制的理解,但Windows API函數用于串口操作流程可以擴展到其他硬件的操作上。本設計選用Windows API函數來實現串口操作。

非標準串行驅動在I/0管理器中被注冊,以COM5,COM6,COM7……COM12來命名,對應于XR17D158的CH0,CH1,CH3,……CH7。一般不采用COM1,COM2,COM3,COM4,因為這些端口有可能被其他串口通信設備占用。根據WINDOWS NT DDK,我們可以發現,通信口在COM9以上命名的,必須以“\\\\.\\COM10”來定義,我們在寫串口驅動程序時,首先要調用windows API函數CreateFile打開相應的串行口。下一步使用文件句柄訪問硬件設備,通信完成時用CloseHandle關閉串行口。以下是兩個關鍵成員函數,一個是打開串口函數,另外一個是簡單串口讀/寫函數。

(1)打開串口函數

PortHandle=NULL;//初始化端口

If(cPortNo<=9)

ComName.Format(“COM%d”,cPortNo);

Else

ComNamel.Format(“\\\\.\\COM%d”,cPortNo);

//如果串口序號大于9則以“\\\\.\\COM10”來定義

If((PortHandle=CreateFile(ComName,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_FILE_

FLAGE_OVERLAPPED,0))= =INVALD_HANDLE_VALUE //非重疊讀/寫端口

{

DWORD err=GetLastError();

Return(NULL); //端口建立失敗

}

Else

{

//端口建立成功,初始化端口,對端口進行操作

}

(2)串口讀/寫函數

//讀數據到緩沖區

ReadFile(PortHandle,(LPVOID)IpReadBuff,dwFileSize,&dwBytesRead,&osRead);

//寫操作

Int bResult=WriteFile(PortHandle,(LPVOID)IpWriteBuff,dwBytesToWrite,&dwBytesWritten,&osWrite) //重疊IO寫操作

函數中各參數定義如下:PortHandle,為待操作串口,(LPVOID)IpReadBuff數據讀緩沖區,dwFileSize待讀字節數,&dwBytesRead讀取字節數,&osRead溢出緩沖區;,(LPVOID)IpWriteBuff數據寫緩沖區,dwBytesToWrite待寫字節數,&dwBytesWritten已經寫入字節數,&osWrite溢出緩沖區。

4 結論

本文提供了一種8口UART串口轉換PCI總線的方法,介紹了硬件的實現和驅動程序的實現。經測試該適配卡工作穩定,性能可靠,波特率最高可達921.6kb/s,吞吐量達700kb/s,達到了預期設計目標,可廣泛應用于POS機,系統監控,便攜式通訊等系統。

本文作者創新點:利用XR17D158芯片實現PCI總線和 8路串口之間的通信,該適配卡結構緊湊,通信距離可達15米,實現了PnP(即插即用)功能,驅動程序可在Windows /98/2000/ME/XP使用,最多可支持接8個設備的通訊,解決了大部分I/O設備沒有PCI總線接口的問題。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品美女久久久久久久| 欧美在线播放高清精品| 欧美视频一区二区三区四区| 99这里只有精品| 老鸭窝91久久精品色噜噜导演| 国产精品久久久久久超碰| 亚洲国产精品第一区二区三区| 日韩一级网站| 欧美v国产在线一区二区三区| 一区二区激情小说| 日韩一级黄色大片| 国语自产精品视频在线看抢先版结局| 欧美黄网免费在线观看| 国产欧美一区二区精品仙草咪| 欧美午夜精品一区| 欧美日韩黄色大片| 欧美性色综合| 欧美日韩精品三区| 亚洲欧美偷拍卡通变态| 夜夜嗨av色综合久久久综合网| 欧美日韩精品在线播放| 午夜久久一区| 亚洲一卡二卡三卡四卡五卡| 一区二区三区在线视频免费观看| 国产欧美日韩精品丝袜高跟鞋| 亚洲三级影院| 欧美日韩精品欧美日韩精品| 久久久久国产成人精品亚洲午夜| 麻豆精品视频在线| 91久久夜色精品国产网站| 欧美在线视频观看免费网站| 亚洲国产日韩美| 亚洲精品小视频在线观看| 欧美日韩一区精品| 午夜欧美精品久久久久久久| 国产欧美午夜| 欧美午夜精品久久久久久久| 国产精品一二一区| 亚洲欧美日韩中文播放| 性欧美1819sex性高清| 欧美午夜在线| 欧美日韩999| 欧美激情欧美狂野欧美精品| 美乳少妇欧美精品| 国产亚洲观看| 美女脱光内衣内裤视频久久网站| 欧美福利一区二区| 国内精品亚洲| 国产一区二区观看| 国产亚洲二区| 国产精品一区免费视频| 快播亚洲色图| 国产精品免费看片| 亚洲一区二区三区精品在线观看| 亚洲日本免费| 麻豆精品在线视频| 欧美在线www| 欧美高清在线视频| 免费影视亚洲| 麻豆精品在线播放| 亚洲精品极品| 亚洲国产婷婷综合在线精品| 久久久噜噜噜| 欧美丝袜一区二区| 亚洲国产精品一区制服丝袜| 亚洲经典一区| 久久精品国语| 国产精品亚洲一区| 亚洲人成网站影音先锋播放| 亚洲欧美日韩精品久久久久| 国产精品高清在线观看| 久久九九精品99国产精品| 精品不卡在线| 篠田优中文在线播放第一区| 欧美一区二区三区四区高清| 欧美一区免费| 国产精品视频免费在线观看| 欧美日韩在线免费视频| 欧美精品日日鲁夜夜添| 免费精品99久久国产综合精品| 欧美高清视频在线| 久久人人爽人人爽| 国模私拍视频一区| 一区二区高清在线观看| 亚洲在线视频一区| 欧美日韩卡一卡二| 欧美精品亚洲二区| 99精品免费| 久久久久久欧美| 蜜臀av在线播放一区二区三区| 国产免费亚洲高清| 国产精品乱码久久久久久| 久久婷婷久久一区二区三区| 国产欧美日韩另类一区| 国产精品成av人在线视午夜片| 国产伦精品一区二区三| 伊人夜夜躁av伊人久久| 欧美日本亚洲视频| 亚洲久久一区| 在线免费精品视频| 欧美一区二区三区免费观看| 欧美日韩成人在线播放| 久久久久看片| 狠狠久久五月精品中文字幕| 欧美中文在线视频| 久久精彩免费视频| 国产一区二区三区电影在线观看| 亚洲第一天堂av| 久久久人人人| 欧美精品成人91久久久久久久| 国产精品久久久久久久电影| 国产精品日韩精品欧美在线| 1024成人| 欧美色一级片| 国产精品久久久久久久电影| 亚洲自拍偷拍福利| 亚洲国产精品悠悠久久琪琪| 欧美国产一区二区| 国产精品午夜在线| 国产嫩草一区二区三区在线观看| 久久亚洲一区二区| 国产精品久久久久久久久久免费看| 欧美成人免费在线视频| 国产中文一区二区三区| 国产一区二区中文字幕免费看| 欧美二区不卡| 中文国产成人精品久久一| 亚洲视频在线观看视频| 日韩一级精品视频在线观看| 欧美性视频网站| 亚洲狠狠丁香婷婷综合久久久| 性欧美办公室18xxxxhd| 久久精品一级爱片| 欧美日在线观看| 欧美精品一区二区精品网| 欧美va亚洲va香蕉在线| 国内精品伊人久久久久av一坑| 亚洲精品视频在线看| 狠狠色噜噜狠狠色综合久| 亚洲国产精品欧美一二99| 欧美日韩另类丝袜其他| 亚洲精品久久久久久久久| 亚洲大胆女人| 亚洲性人人天天夜夜摸| 久久久久久亚洲综合影院红桃| 欧美金8天国| 欧美成人免费va影院高清| 久久精品亚洲一区二区三区浴池| 久久蜜臀精品av| 国产精品久久久久永久免费观看| 国产亚洲成精品久久| 亚洲国产午夜| 99国产精品国产精品毛片| 亚洲一区二区成人| 国产日韩精品一区二区浪潮av| 在线视频你懂得一区| 欧美电影免费观看高清完整版| 99www免费人成精品| 麻豆精品在线观看| 欧美激情综合五月色丁香| 国产欧美亚洲视频| 夜夜嗨av一区二区三区| 欧美精品一卡| 亚洲欧美日韩国产综合| 久久婷婷人人澡人人喊人人爽| 妖精成人www高清在线观看| 午夜精品999| 国产亚洲女人久久久久毛片| 欧美亚洲一区二区在线观看| 欧美黄网免费在线观看| 亚洲欧美国产日韩天堂区| 亚洲一区二区三区免费视频| 黑人极品videos精品欧美裸| 国产精品久久午夜夜伦鲁鲁| 欧美日韩一区二区三区四区五区| 亚洲视频一二三| 亚洲精品免费网站| 国产精品嫩草影院一区二区| 亚洲一级二级在线| 亚洲开发第一视频在线播放| 国产精品亚洲一区| 欧美日韩亚洲高清一区二区| 久久一区二区三区四区| 好看的日韩视频| 狠狠88综合久久久久综合网| 久久美女艺术照精彩视频福利播放| 久久国产视频网站| 亚洲精品中文字幕有码专区| 亚洲国产一区二区精品专区| 美女视频网站黄色亚洲| 亚洲午夜激情免费视频| 免费观看久久久4p| 亚洲国产中文字幕在线观看| 一本久道久久综合中文字幕| 欧美激情按摩在线| 欧美va亚洲va香蕉在线| 欧美激情一区二区三区蜜桃视频| 欧美专区在线观看| 欧美精品日韩三级| 国产毛片久久| 欧美紧缚bdsm在线视频| 伊人成综合网伊人222| 亚洲国产欧美在线| 一区二区亚洲| 亚洲欧美激情视频在线观看一区二区三区| 亚洲国产一区二区在线| 欧美午夜精品久久久久久浪潮| 狠狠色狠狠色综合人人| 欧美女同视频| 在线播放中文字幕一区| 麻豆freexxxx性91精品| 国产亚洲精久久久久久| 久久婷婷国产综合国色天香| 欧美精品色综合| 久久精品盗摄| 激情欧美一区二区三区| 久久久青草婷婷精品综合日韩| 国产一区二区三区精品欧美日韩一区二区三区| 国产精品视频一区二区高潮| 欧美永久精品| 亚洲最新在线| 久久久久久高潮国产精品视| 久久精品国产免费看久久精品| 亚洲愉拍自拍另类高清精品| 欧美有码在线观看视频| 夜夜躁日日躁狠狠久久88av| 在线精品视频一区二区三四| 亚洲人成在线播放网站岛国| 开心色5月久久精品| 亚洲午夜三级在线| 黄色成人免费观看| 国产毛片久久| 欧美日韩视频在线第一区| 欧美成人激情视频免费观看| 亚洲国产日本| 免费成人在线观看视频| 亚洲少妇一区| 亚洲中午字幕| 亚洲二区在线视频| 久久精品国产亚洲a| 久久九九国产精品怡红院| 伊人精品久久久久7777| 国产亚洲欧美日韩一区二区| 国产一区二区三区四区三区四| 欧美精品福利| 在线视频成人| 欧美一级片久久久久久久| 亚洲大片一区二区三区| 狠狠色狠狠色综合日日小说| 一区二区三区视频观看| 亚洲日本中文字幕免费在线不卡| 亚洲欧洲精品成人久久奇米网| 亚洲人成网站精品片在线观看| 亚洲大片精品永久免费| 亚洲无限乱码一二三四麻| 国产日韩欧美在线一区| 亚洲在线中文字幕| 在线不卡欧美| 欧美一级二级三级蜜桃| 国内精品久久久久久| 久久精品国产亚洲5555| 欧美日韩在线一区| 亚洲福利免费| 国产精品每日更新在线播放网址| 欧美性猛交xxxx免费看久久久| 卡通动漫国产精品| 国产喷白浆一区二区三区| 国产乱码精品一区二区三区不卡| 蜜臀久久99精品久久久画质超高清| 欧美日本精品| 欧美日韩国产限制| 影音欧美亚洲| 国产精品日韩欧美一区二区三区| a91a精品视频在线观看| 亚洲精品自在久久| 欧美日韩日本网| 国产一区在线播放| 亚洲精品久久在线| 国产精品美女在线观看| 久久精品视频在线| 男人的天堂成人在线| 亚洲肉体裸体xxxx137| 狠狠色噜噜狠狠狠狠色吗综合| 欧美日韩三级一区二区| 久久午夜视频| 欧美日韩不卡一区| 国产精品高潮粉嫩av| 欧美日韩国产成人在线免费| 国产精品久久久久久久久久久久久| 在线看无码的免费网站| 久久久精品免费视频| 欧美精品 日韩| 国产精品一区二区三区免费观看| 国产一区二区av| 久久先锋影音| 久久婷婷影院| 日韩一级片网址| 国产日韩欧美麻豆| 99v久久综合狠狠综合久久| 亚洲人成在线观看一区二区| 亚洲国产成人在线| 国产精品久久久久一区二区| 国模 一区 二区 三区| 欧美激情一区二区三区在线视频| 亚洲精品资源美女情侣酒店| 国产一区美女| 狠狠色香婷婷久久亚洲精品| 欧美日韩一区二区三区免费| 伊人色综合久久天天五月婷| 久久日韩粉嫩一区二区三区| 国产精品美女999| 国产精品久久波多野结衣| 国产一区在线观看视频| 国产精品久久久久天堂| 亚洲欧美综合精品久久成人| 久久国产手机看片| 亚洲欧美日韩精品在线| 欧美刺激午夜性久久久久久久| 欧美一区二区精品久久911| 亚洲第一区中文99精品| 精品成人在线视频| 国产日韩欧美夫妻视频在线观看| 久久精品亚洲精品| 欧美日韩美女| 毛片一区二区| 亚洲福利视频网站| 国户精品久久久久久久久久久不卡| 亚洲一区免费观看|