SYS68K/CPU-37ZE
廈門莫格電氣自動化有限公司
:雷琳
:/,
羅克韋爾自動化ICS Rockwell trusted系統(tǒng)(Allen-Bradley)可編程控制器( PLC)、交換機!、
施耐德(schneider Modicon Quantum)交換機、過程控制可編程控制器( PLC),以太網(wǎng)自動化控制器,處理器等!
honeywell霍尼韋爾DCS卡件 FSC DO TPS系列 HIMA黑馬DCS控制系統(tǒng) YOKOGAWA橫河 CS3000 DCS系列
伍德沃德WOODWARD 505Turbine Control 數(shù)位式調(diào)速板,控制器,直流調(diào)速器!
艾默生EPRO卡件/A6312/A6110/A6120/A6210/A6220系列前置器/探頭
GE電氣90/30系列 90/70系列 GE燃機備件IS200 DS200 IS215 DS215 DEH控制卡汽輪機備件
本特利bently3500系列機械保護系統(tǒng)
艾默生DeltaV 西屋OVATION系統(tǒng)備品備件 TRICONEX/TRICON/??怂共_DCS
Robots、OTC Robots、Panasonic Robots、MOTOMAN Robots等
ABB:工業(yè)機器人備件DSQC系列(中二中三,中四, S4C , S4C , IRC5)、Bailey INFI 90等。
Westinghouse(西屋): OVATION系統(tǒng)、WDPF系統(tǒng)、MAX1000系統(tǒng)備件
Invensys Foxboro(福克斯波羅):I/A Series系統(tǒng),F(xiàn)BM(現(xiàn)場輸入/輸出模塊)順序控制、
梯形邏輯控制、事故追憶處理、數(shù)模轉(zhuǎn)換、輸入/輸出信號處理、數(shù)據(jù)通信及處理等。
Invensys Triconex: 冗余容錯控制系統(tǒng)、基于三重模件冗余(TMR)結(jié)構(gòu)的zui現(xiàn)代化的容錯控制器。
Siemens(西門子):Siemens MOORE, Siemens Simatic C1,Siemens數(shù)控系統(tǒng)等
Bosch Rexroth(博世力士樂):Indramat,I/O模塊,PLC控制器,驅(qū)動模塊等。
Motorola(摩托羅拉):MVME 162、MVME 167、MVME1772、MVME177等系列
SYS68K/CPU-37ZE
除了可在廣泛應用的Microchip公司PIC微控制器芯片中擠出更多特性外,本文探討的諸如增加額外串口以及在8位芯片上進行32位運算等技巧,也可適用于其它微控制器。
圖1:作為異步串行數(shù)據(jù)的ASCII碼字母“Q”(0x51)。
盡管Microchip公司不斷為其日益擴大的PIC微控制器產(chǎn)品線增加更多功能,但有時設(shè)計工程師只需其中一小部分功能。也許設(shè)計工程師還需要目前尚不存在的一組特性,或者繼承了一種設(shè)計但不能升級,或者可能只想進行試驗并打破以往傳統(tǒng)限制。本文將介紹一些挖掘各種PIC產(chǎn)品極限的應用方法,其中一些技巧也適用于其它微控制器,但這里只介紹用于PIC的源代碼與具體示例。本文還將分析一些方法,它們是關(guān)于如何增加另一個異步串口、更容易地處理精度擴展(32位或更高)算法、增強并行從端口以及如何使用一些異步串口常被忽略的特性。
異步串口
許多PIC都具有一個或兩個異步串口,但如果它們不夠用,那么位拆裂(Bit-banging)剩余I/O管腳是一種常用的解決方案,且適用于整個PIC系列。但這種方案是軟件密集型的,它在保持可靠通信所需的關(guān)鍵時序的同時,將難以進行其它任何操作。另一種選擇方案是檢測起始位的上升沿,并采用定時器中斷來讀取數(shù)據(jù)。這種方法在位拆裂方法的基礎(chǔ)上有了很大改進,但仍需要大量的軟件開銷以處理每一位的中斷,而面向任何中斷的延遲都可能導致同步問題。
[next]
圖2:作為同步串行數(shù)據(jù)的ASCII碼字母“Q”(0x51)。
大多數(shù)PIC還提供一個串行外圍接口(SPI)。僅需很小開銷,普通的同步SPI就可被設(shè)計成能夠接收標準的異步傳輸。
一個典型的異步數(shù)據(jù)流包括一個起始位(總為0)、8個數(shù)據(jù)位(zui低有效位在前)以及一個終止位(總為1)。圖1給出了一個接收ASCII碼字母“Q”(16進制為51)的例子,也可采用更少的數(shù)據(jù)位或者增加一個奇偶校驗位或額外的終止位。
SPI端口也采用8位數(shù)據(jù),但它同步在兩個不同管腳上發(fā)送和接收字節(jié)。數(shù)據(jù)時鐘可消除對起始位或終止位的需要,且zui高有效位在前。圖2顯示由SPI端口發(fā)送的一些數(shù)據(jù),SPI端口在每個時鐘的下降沿接收數(shù)據(jù),在上升沿發(fā)送數(shù)據(jù)。
開始啟動
一旦被接收,數(shù)據(jù)肯定被翻轉(zhuǎn),但如果SPI時鐘的下降沿與每一個異步數(shù)據(jù)位的中心同步,那么數(shù)據(jù)也可能保持原樣。起始位的下降沿提供zui初的同步記號,其它同步記號則利用PIC的一個SPI選項。這里有好幾種定時選項,包括使用定時器TMR2等。TMR2計數(shù)直到其值等于特殊函數(shù)寄存器PR2的值,然后TMR2觸發(fā)SPI時鐘并復位為0,接著再繼續(xù)計數(shù)。如果TMR2從大于PR2的值開始計數(shù),則*個時間間隔將比平常的時鐘周期要長,因為它首先要復位到0(如圖3所示)。
圖3:TMR2在起始位的前沿初始化為 -PR2。
SPI端口接管產(chǎn)生同步記號的任務后,它將用所有的8個數(shù)據(jù)位進行計時而無需其它開銷。但它會占用從起始位上升沿到TMR2與SPI端口正確初始化這段時間,從而導致中斷延遲,如果啟用優(yōu)先級更高的中斷,延遲時間將更長。不過不用擔心這種中斷延遲,因為PIC還有另一個秘密武器。許多PIC都具有兩個或多個捕獲/比較/PWM模塊,I/O管腳可在下降沿上捕獲定時器的值,在起始位的上升沿則將TMR1值存儲在一個CCPRx特殊函數(shù)寄存器中,并產(chǎn)生一次中斷。中斷服務程序?qū)в蠺MR1-CCPRx-PR2值的TMR2初始化,以消除掉任何延遲。列表1給出的是一個典型的中斷程序。 [next]
可選的“if(!CCP1)”行可確認輸入管腳是否仍為低,以避免將瞬間毛刺讀成串行數(shù)據(jù)。由于-PR2(未標出)必須大于PR2,所以應仔細選擇TMR2的預定標器的值,并使TMR1的預定標器的值與之一樣。在上面例子中,dTim2PR2為52。zui壞情況下的中斷延遲應該小于串行數(shù)據(jù)速率,例如在9,600波特上,該值大約為104微秒或16MHz PIC上416條指令的執(zhí)行時間。SPI中斷正好能夠隱藏數(shù)據(jù)并啟用下一個字節(jié)的CCP1中斷,但切記在某些時刻翻轉(zhuǎn)數(shù)據(jù)位。
盡管設(shè)計工程師通常不能控制輸入數(shù)據(jù)的到達時間,且兩個接收器必須時刻保持警惕,但設(shè)計者通常能交替使用兩個發(fā)送器。有很多方法可用來處理硬件路由,僅需少數(shù)幾個邏輯門或晶體管以及一個輸出位就可進行這種選擇。圖4顯示采用一個含4個NAND門的74HC00的方法。可在“串口1”上“選擇”高速發(fā)送,在“串口2”上“選擇”低速發(fā)送,這兩種路徑的“數(shù)據(jù)輸入”都來自TX管腳。
幀錯誤(FERR)標記
PIC異步串口的狀態(tài)位包括FERR標記。FERR表示終止位為低而不是所要求的高,這表明發(fā)送方的波特率低于接收方的波特率,并且預期的終止位的確是一個數(shù)據(jù)位。也可用FERR來檢測RS-232的“中斷”條件。中斷通常包括一個低起始位、全0數(shù)據(jù)以及一個0終止位。如果FERR被設(shè)置且數(shù)據(jù)為0,則將有一次中斷,但一般需對輸入做較長時間的觀察,以確認它保持為低。“中斷” 條件是一種向系統(tǒng)發(fā)送秘密“蝙蝠信號”并啟用特殊配置或測試模式的方法。有些終端能發(fā)送各種長度的中斷,或者設(shè)計工程師可將串口的RX輸入縮短為正電壓,其確切電平取決于硬件,但它可低到3V。如果是RS-232狀態(tài)輸出(如DTR),則其有效電平為正,且將能提供接收器所需的電壓電平。
[next]
TX9及TX9D是兩個經(jīng)常被忽略的特殊函數(shù)寄存器位,可對TX9設(shè)置進行設(shè)置,使TX9D作為第9個數(shù)據(jù)位被發(fā)送。額外數(shù)據(jù)位的一種傳統(tǒng)用法是將其作為錯誤檢查的奇偶校驗位。如果錯誤檢查對應用很關(guān)鍵,那么只進行簡單的奇偶校驗還不夠,因為錯誤檢查位可能出錯。
曾經(jīng)有一種采用RS-485的系統(tǒng)通過電線在數(shù)百英尺的距離上進行通信。該系統(tǒng)采用具有故障自恢復功能的RS-485芯片,即使電線是開路的,它也能保證有效輸出。電線開路在半雙工通信時經(jīng)常出現(xiàn),因為數(shù)據(jù)在同一對電線的兩個方向上傳輸,每次只有一邊能發(fā)送,而在間歇期間兩邊都在偵聽,這使電線上沒有驅(qū)動信號。該系統(tǒng)可靠工作了數(shù)年時間,直到客戶想采用其它外來的RS-485設(shè)備。
Fanuc A20B-1001-0160-?06A
Fanuc A14B-0076-B001-?01
Fanuc A20B-1001-0160-?03A
Fanuc A20B-1001-0160-?04A
Yaskawa SMC-4020
Cosel P15-5
Fanuc A20B-1000-0030-?06A
Fanuc A14B-0061-B001-?05
Fanuc A14B-0076-B001
Shindengen BY05005
Hitachi Seiki SLPWED139
Fanuc A14B-0061-B002-?02
Okuma DC-S3A-6
Hitachi Seiki SLPWED139-1
TDK MRW160
Yaskawa PE3-2435D
Omron S8PS-15024C
Volgen SP15U-24S
TDK PD21BX
Omron S82R-6522
ELCO JMC-2
Toko Inc HS-01
Omron S82J-60024
Fanuc Alpha Power Supply Module 200/220/230VAC A06B-6087-H130