SI-PROG編程器的工作原理及其程序設計
1.2 信號的邏輯關(guān)系
由圖1可見(jiàn),8250的11,33,32,36四個(gè)引腳分別通過(guò)編程器與AVR的RESET,MOSI,SCK,MISO相連進(jìn)行通信。這4個(gè)引腳的電平可通過(guò)8250內部的3個(gè)寄存器進(jìn)行設置或讀取,如圖3所示。3個(gè)寄存器依次為線(xiàn)路控制寄存器(LCR)、Modem控制寄存器(MCR)和Modem狀態(tài)寄存器(MSR)。對于串口1,3個(gè)寄存器的端口地址一般為3FBH,3FCH和3FEH。LCR的SB位、MCR的DTR位和RTS位分別控制11,33,32三腳的電平。MSR的CTS位則反映了36腳的電平。
下面分析8250與AVR通信信號間的邏輯關(guān)系。為了避免引起混亂,這里全部采用正邏輯描述。
1.2.1 RESET與SB位的邏輯關(guān)系
線(xiàn)路控制寄存器LCR的D6位SB決定了8250的11腳的電平。當SB=1時(shí),11腳被強制拉到低電平,DB9的3腳為高電平。當SB=O時(shí),DB9的3腳為低電平。邏輯關(guān)系在Q1上又反相一次。因此,RESET信號與SB位的邏輯關(guān)系為:
RESET=SB (1)
編程時(shí)只要通過(guò)OUT指令改變SB位的值,就可以控制RESET端的電平。當8250復位后,SB=0,RESET=SB=1,RESET引腳為高電平。
1.2.2 MOSI,SCK信號與DTR,RTS位的邏輯關(guān)系
MODEM控制寄存器MCR的D0位DTR控制著(zhù)33腳的電平。置DTR=1,則33腳DTR為低電平,是邏輯非關(guān)系。U3相當于非門(mén),故MOSI信號與DTR位的邏輯關(guān)系為:
MOSI=DTR (2)
類(lèi)似的,SCK信號與MCR的D1位RTS的邏輯關(guān)系為:
SCK=RTS (3)
1.2.3 CTS位與MISO信號的邏輯關(guān)系
MODEM狀態(tài)寄存器(MSR)的D4位CTS反映了8250的36腳的電平,當CTS端為高電平時(shí),CTS=O;反之CTS=1。CTS位與CTS端是邏輯非關(guān)系。因此,CTS位與MISO信號的的邏輯關(guān)系為:
CTS=MISO (4)
根據式(1)~式(4),下載編程時(shí),設置或讀取AVR的RESET,MOSI,SCK,MISO腳的電平問(wèn)題就變成通過(guò)I/O指令設置或讀取8250內部寄存器的SB,DTR,RTS,CTS位的問(wèn)題。
1.3 SI-PROG編程器的電平轉換
根據RS 232標準,串口DB9上的兩種電平分別為5~15 V和-5~-15 V。編程器電路采用分立元件實(shí)現DB9上的RS 232電平與AVR的TTL電平間的轉換。
1.3.1 RS 232到TTL電平的轉換
圖1中,用限流電阻R3和4.7 V的穩壓二極管Z2完成DB9的4腳上RS 232電平到J1的1腳上TTL電平的轉換。5~15 V與-5~-15 V高低兩種電平通過(guò)R3后將分別變成4.7 V和O V(實(shí)際為-O.7 V),符合TTL電平的要求。
類(lèi)似的,限流電阻R4和4.7 V的穩壓二極管Z1完成DB9的7腳上RS 232電平到J1的7腳上的TTL電平的轉換。
Q1,R1,R2接成反相器,DB9的3腳上的5~15 V與-5~-15 V兩種電平分別使Q1處于飽和導通和截至狀態(tài),實(shí)現了RESET信號的電平轉換。
1.3.2 TTL到RS 232電平的轉換
TTL到RS 232電平的轉換由SN75154線(xiàn)接收器實(shí)現。圖4為SN75154的施密特電壓傳輸特性曲線(xiàn)。
當閾值電壓控制端T3接Vcc時(shí),它工作在圖4中曲線(xiàn)a狀態(tài),兩個(gè)閾值電壓分別為VIT-=-1.1 V和VIT+=2.2 V;當T3懸空時(shí),它工作于圖中曲線(xiàn)b狀態(tài),VIT-=-1.4 V,VIT+=2.2 V。顯然,對于后一狀態(tài),MISO引腳上的TTL電平信號可以通過(guò)U4到達8250,而前一狀態(tài)則無(wú)法通過(guò)U4。
評論