當前位置:首頁 > 智能硬件 > 智能硬件
[導讀]本篇應用筆記目的是演示如何使用PC并口構建一種快速、簡單和經濟的2線(與I2C兼容)接口。雖然存在好多解決方案,在本篇筆記中給出的方案不需要微處理器、固件,也不存在購買芯片的困難。而是通過Windows軟件,幫助解

本篇應用筆記目的是演示如何使用PC并口構建一種快速、簡單和經濟的2線(與I2C兼容)接口。雖然存在好多解決方案,在本篇筆記中給出的方案不需要微處理器、固件,也不存在購買芯片的困難。而是通過Windows軟件,幫助解決同時調試硬件和軟件的困難。在給出的軟件的同時,也給出幾個調試工具,能夠使硬件快速工作運行。

既然硬件并不與PC接口,不需要作標準的聲明。雖然給出的硬件和軟件一起構建和測試,用戶使用有一定的風險。確保再三地檢查所有的連接和電源電壓,因為電源直接連接到PC的并口電路。Dallas Semiconductor/Maxim對可能引起的損害不負任何責任。本解決方案僅用于評估目的,不是用于產品或者發(fā)行品。雖然現在的軟件僅適用于Win95/98,將來的版本會支持Win NT。

為什么使用并口,而不是串口或者USB?

在本篇應用筆記中選擇并口作為接口是因為目標是建造一種快速、簡單和經濟的接口。這個并行接口是基于74HC05邏輯芯片和一些無源元件。另外一個方面,串口解決方案需要一個微處理器、固件、編程器或者系統(tǒng)可編程、電平轉換、晶體以及更多的無源器件。同樣地,USB除了工作量大的軟件和固件投入外,也需要相當數目的硬件。而且調試USB硬件經常需要昂貴的協議分析儀。因此,根據我們的目標,很明顯地選擇并口。然而在作出最終決定時,必須分析缺點以確保這些缺點是可容忍的。

并口最大的缺點是它的未來。更多的PC制造商放棄了并口和串口,轉而支持USB。并口的另外一個缺點是大多數的配置需要在PC的BIOS里設置。這意味著在PC和硬件之間不能建立通信時,PC必須重新啟動才能進入BIOS工具(通常在啟動時按F1或者DEL鍵)設置并口配置。在工程或者評估環(huán)境中,中斷不會花費太多時間,而一旦投入到市場中大量的支持將成為問題。雖然更大的麻煩是PC之間的差異。因為并口是遺留硬件,好多年來一直在發(fā)展變化和改進。然而,在設計硬件時,要使硬件能夠工作在老版本和新版本的并口上。這樣在設計接口硬件時必須作個假設(定時和電氣)。最后,另外一個缺點是操作系統(tǒng),在Windows NT系統(tǒng)中,需要設備驅動程序。Windows NT不允許用戶程序直接讀/寫硬件寄存器。在軟件方面如果購買驅動程序的話是非常昂貴的。

幸運的是,在評估環(huán)境中使用Windows 95和Windows 98并不是很麻煩,一旦軟件修正以支持Windows NT則不必在意這個話題。

硬件

圖1給出了并行2線接口原理圖。很容易獲得所有的元器件??墒褂帽碣N元件或者直插元件構建接口。

圖1 PC 2線接口原理圖

2線設備通信

該接口基于一個74HC05芯片構建,在原理圖中以U1表示。74HC05包含六個集電極開路輸出的反相器 。在本應用中該芯片具有好幾個功能。首先,它為PC并口電路與下一級電路提供隔離功能。同時將并口的TTL信號轉成2線接口需要的集電極開路輸出。集電極開路輸出需要連接雙向SDA信號到一個專門的并口輸入引腳和一個專門的并口輸出引腳(與使用一個并口雙向引腳的情形相反,這通常需要用戶設置PC BIOS)。

既然2線接口的SCL信號對芯片來說為僅輸入(不實現時鐘擴展),可使用并口的D0產生SCL (PC DB-25連接器的引腳2),配置為輸出。 D0連接到74HC05反相器(U1E)的一個輸入。然而,一些并口可能不能輸出足夠高的電壓,反相器無法判斷電壓為高電平,所以電阻R3用作上拉電阻使接口對PC之間的差異不敏感。同樣地,為補償這種差異,電容C4作為一個空的元件包括進去,如果與帶有噪聲的PC并口連接時可將C4安裝上去。對大多數應用不需要該電容,但是如果PCB正在構建,并不影響,至少包括電容的封裝。最后,反相器U1E的輸出為SCL。因為輸出為漏極開路,需要上拉電阻R1實現高電平邏輯。

另外一個方面SDA信號是雙向。使用一個輸入引腳(PC DB-25連接器引腳12)和一個輸出引腳(D1, PC DB-25連接器引腳3)實現雙向工作。從PC到2線設備的通信由產生SCL信號的同樣電路實現。并口的輸出D1連接到另外74HC05 (U1)的另一個反相器的輸入(U1A)。再強調一次,為保證并口高電平邏輯足夠高,反相器能夠正確判斷,上拉電阻R4將信號D1電平上拉到VCC。同樣地,電容C5作為一個空的元件,在遇到噪聲的并口時可安裝用以濾波。反相器的輸出為漏極開路,需要R2實現高電平邏輯。

使用并口的一個輸入引腳(引腳12)和74HC05反相器(U1B)實現從2線設備到PC的SDA通信。應該指出的是,為使設備能夠與PC通信,應用軟件必須使D1為低電平,這樣反相器的輸出釋放SDA,允許2線設備控制SDA。反相器U1B的輸入監(jiān)視SDA。反相器的輸出通過R6上拉到VCC,R6負責判定高電平邏輯。串聯電阻R5用作沖突狀態(tài)下的保護。在這個例子中不需要串聯電阻,因為并口的引腳12僅用作輸入。如果使用并口引腳作為輸入輸出,在并口輸出高電平電壓且外部將高電平電壓加入到并口上時這個電阻變得非常重要。即使應用軟件沒有導致沖突,可能另外一個程序也要在一段時間內訪問該端口(例如,操作系統(tǒng)周期性搜索打印機)。

僅需要74HC05六個反相器中的三個用于實現2線通信,其余三個反相器并未沒用。為避免浪費,原理圖也包括了一個可選的電路,使用兩個未使用的門驅動LED,可在軟件控制下開啟或者關閉。并口引腳17為輸出引腳,用于控制反相器U1C和U1D,并行提供足夠的拉電流驅動各種LED。電阻R7,與R3、R4一樣,使反相器輸入具有足夠高的電壓,確保高電平邏輯。電阻R8是LED限流電阻,用于控制LED的亮度。有趣的是,并口引腳17,對PC內部有反相器。對引腳17寫0將轉化成高電平,在到達DB25之前。高電平輸入到U1C和U1D引起輸出低電平,打開LED。

其余沒有用到的反相器輸入應當連接到GND,輸出高阻以防止沖突。

電容C1和C2用于電源電壓的旁路,盡量靠近PCB上電源。同樣地,去藕電容C3應該盡可能靠近74HC05的VCC和GND放置。

當連接SCL和SDA到2線設備時,應確保接口地與2線設備地共地。如果接口的SCL和SDA連接到包含2線設備的電路時,注意R1和R2與應用電路2線上拉電阻并聯。如果你計劃在電路內與2線設備連接,可適當調整R1和R2,如果應用電路已經有SDA和SCL上拉電阻,可去掉R1和R2。

最后,在原理圖中給出的,陰型DB25接口用在接口原型中。在原理圖中給出了制造商和器件型號以及陽型DB25電纜。取決于電源,很容易使用陽型DB25連接器和DB25陽型到陰型電纜。

并口寄存器

PC與接口之間的通信使用三個寄存器中的四位實現(表1)。并口(LPT1)缺省基地址為378h。其余的兩個可能地址為3BCh和278h?;刂窞?位數據字節(jié)的地址。該字節(jié)包含控制引腳D7-D0的位,最低有效位(LSB)為D0。在數據字節(jié)后面、基地址+1處的字節(jié)為狀態(tài)字節(jié)。在給出的原理圖中,狀態(tài)字節(jié)的第5位(位0為LSB)為SDA的輸入。狀態(tài)字節(jié)位5的讀數指示SDA的狀態(tài)(通過U1B的倒相)。在執(zhí)行讀操作之前,確保數據字節(jié)中的D1寫為低電平使得反相器U1A為高阻,允許反相器U1B檢測SDA的狀態(tài)。狀態(tài)字節(jié)之后基地址+2處的字節(jié)為控制字節(jié)。我們感興趣的是控制字節(jié)的位3(位0為LSB)。位3通過PC內部的反相器,然后輸出到PC的DB25接口的引腳17。該位使能LED或者使LED無效。讀寫該位的例子后面的章節(jié)給出。

校驗和調試硬件

一旦硬件完成構建,首先對硬件做仔細檢查。在連接到PC或者電源之前,確保所有的連接是安全的、正確的,且沒有短路存在。確保VCC沒有連接到地。一旦執(zhí)行這些防范措施后,連接5V電源到該接口(不要連接并口電纜)。如果電源有電流讀數,確保電流不超過10mA到15mA。如果出現更大的電流,再三檢查所有連接。確保芯片連接正確,再次檢查可能用到的極性電容的極性,比如C1。另一個可能導致大工作電流是不正確的上拉電阻的阻值 ,比如使用470Ω代替4.7kΩ電阻會導致電流增大。

如果一切都正常,連接并口電纜。由于上拉電阻的存在,電流稍微發(fā)生變化。到此你可以試試附送的軟件,或者根據下一部分學會如何使用微軟的調試工具直接讀寫并口寄存器,這樣可以校驗或者調試硬件。使用Debug Microsoft Windows 95和98和DOS工具Debug讀寫并口寄存器。雖然Windows NT包含Debug工具,但是操作系統(tǒng)不允許直接訪問硬件。在NT使用Debug對硬件不會有任何效果。為運行Debug,單擊Sart菜單選擇Run命令..在編輯框輸入Debug。帶“-”提示符的DOS窗口出現。圖2給出了Debug的屏幕截圖。很容易使用Debug。例如,讀字節(jié)地址378h,在提示符“-”后輸入: i 378

結果是從指定地址中讀出兩個數字(一個字節(jié))十六進制數??墒褂肈ebug寫存儲器。例如,將00h寫入378h,輸入以下然后回車。

建議小心使用Debug,僅可、訪問已知的寄存器。訪問其他的寄存器會可能導致未知或者不希望的副效果。鍵入q退出Debug, 鍵入?尋求幫助。這里給出使用Debug校驗/條是硬件的例子(使用缺省的LPT地址)。圖2的Debug屏幕截圖給出了這些例子。

-i 378 讀數據字節(jié)。

-o 378 00 數據字節(jié)寫為00h。SDA和SCL輸出高電平。

-i 378 讀數據字節(jié)。這會返回00,因為剛寫入00。

-o 378 01 使SCL低電平,SDA高電平。

-o 378 02 使SDA低電平,SCL高電平。

-o 378 03 SDA 和SCL輸出低電平。

-o 378 00 在執(zhí)行下列命令時確保SDA為高電平。

-i 379 這返回SDA的狀態(tài)。如果位5為0,則SDA為高電平,如果位5為1,SDA為低電平。

注意要讀入SDA的值,數據字節(jié)應首先寫入0, 這樣反相器(U1A)會釋放SDA。如果外部沒有將SDA拉低,位5讀入為0。

-o 378 02 使SDA為低電平。

-i 379 讀SDA狀態(tài),這時位5讀入為1。

為將LED開啟和關閉。建議控制字節(jié)中未使用的的位保持不變。可通過讀寄存器,然后使用與或者或操作設置清除位3。注意PC內部

有反相器。

-i 37A 讀控制字節(jié)??煽吹饺缙聊唤貓D所示,PC返回0C(當前LED關閉)。為打開LED,位3必須清除,可用F7h與上控制字節(jié)的讀數。對于讀數0C,清除位3得到04。將其寫入控制字節(jié)會開啟LED.

-o 37A 04 開啟LED。

并口軟件工具

圖3給出了并口軟件的屏幕截圖,該軟件專為本篇應用程序中的硬件設計??蓮囊韵碌刂废螺d: http://files.dalsemi.com/system_extension/AppNotes/AN3230/ParallelPort.exe 屏幕截圖可能與所下載的程序稍微有出入,因為軟件有可能改進了或者增添了功能。

軟件缺省的LPT地址為378h。如果發(fā)現軟件不能與硬件通信,可以選擇不同端口的地址。最容易判斷軟件是否與硬件通信的方法是單擊LED On和LED Off按鈕。如果成功,單擊Test按鈕,它控制D1 (U1A),從U1B讀入值。讀數結果會顯示在狀態(tài)欄里。

忽略同步脈沖。如果你希望使用示波器捕捉2線通信,可以使能同步脈沖,將示波器探針放到DB25的引腳17上,作為觸發(fā)器。

到此,可以準備與你已連接的2線設備通信了。確保設備的SDA, SCL和GND連接到硬件上。確保74HC05的VCC盡可能等于設備的VCC。

有兩種方法可以與設備通信,首先需要確保軟件知道2線設備從地址通信。軟件缺省地址為A0 (hex),這恰好為數字電壓表的地址,雖然這常取決于設備地址引腳,如果有許多的話。要改變2線設備地址,在編輯框中鍵入地址,單擊“Change”。如果不知道2線設備的地址,請檢查設備數據手冊。

最容易讀寫一個或者兩個字節(jié)設備寄存器的方法是使用軟件中的“One and Two Byte Reads/Writes”部分。該部分適合對設備編程/配置,因為2線設備中所有細節(jié)(start, stop, ACK, NACK, 等)自動隱藏。只需要輸入需要的存儲器地址去讀或者讀或者寫。如果希望寫,用需要的數據填充“DATA”域。

與設備通信的另外一種方法是用“2-Wire Functions”部分,如果需要學習2線設備協議,這部分功能很適合。在演示例子之前,需要解釋幾個按鈕的含義。“Send Write”按鈕是用2線地址從2線地址域,將LSB (R/W位)屏蔽為0,然后發(fā)送8位。“Send Read”按鈕是用同樣的2線地址,但是將LSB (R/W位)屏蔽為1,指示下一步將進行讀操作。8位數據發(fā)送。“Bus Reset”按鈕在SCL輸出9個時鐘周期,重新設置2線設備總線。

例子(使用缺省的從地址)

1. 寫存儲器地址7Fh到01h。

Start

Send Write

Data [7F]

Data [01]

Stop

2. 讀存儲器地址7Fh (一個字節(jié))。

Start

Send Write

Data [7F]

Start——通

常稱作重新讀。

Send Read - 這里使用Rd w/NACK - Rd w/NACK是因為僅讀1個字節(jié)。

Stop

3. 讀存儲器地址F0h和F1h (多個字節(jié)讀)。

Start

Send Write

Data [F0]

Start

Send Read

Rd w/ACK - 如果超過2字節(jié)需要讀,命令會重復。

;    Rd w/NACK - 最后的讀必須是w/NACK。

Stop

結論

本篇應用筆記描述了如何使用PC并口構建一個簡單、經濟和快速的2線接口。除了原理圖外,還提供軟件幫助構建硬件。一旦硬件構建完畢,軟件可立即用于與Dallas Semiconductor2線設備通信,不需要寫任何軟件。

更多計算機與外設信息請關注21ic計算機與外設頻道

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯合牽頭組建的NVI技術創(chuàng)新聯盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現場 NVI技術創(chuàng)新聯...

關鍵字: VI 傳輸協議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉