dllllllllllll

Câu hỏi:

Trình bày cách thiết lập cho ATMEGA16

hoạt động ở chế độ nối tiếp, không sử dụng ngắt, PA vào, PB ra.
Bước 1: File/New/Create new file
Bước 2: Chọn Project sau đó click chuột vào OK được cửa sổ hỏi xem có sử dụng Code Winzard không, chọn YES.
Bước 3: Được cửa sổ giao diện chọn:
-    Chip: Atmega16, Clock:8MHz
-    Ports: PORTA in mức p; PORTB out mức 0
-    USART:  chọn Receiver, Transmitter
Bước 4: Fle/Generate, Save and Exit
Câu hỏi: Viết chương trình con cho MCS51/52 sử dụng thạch anh 11.0592MHz thiết lập ở chế độ truyền thông nối tiếp, tốc độ baund là 9600 baund
-    Chương trình
    mov    SCON, #50h ;Port noi tiep mode 1
    mov    TMOD, #20h; su dung Timer 1 mode 2   
mov  TH1,#0Fdh  ;toc do truyen 9600 baud
    setb    TR1        ; bat dau dinh thoi

Câu hỏi: Viết 2 chương trình con cho MCS51/52 sử dụng thạch anh 11.0592MHz với yêu cầu: Truyền và nhận với tốc độ 9600 baund.
Org 00h
mov    SCON, #50h ;Port noi tiep mode 1
    mov    TMOD, #20h; su dung Timer 1 mode 2   
mov  TH1,#0Fdh  ;toc do truyen 9600 baud
    setb    TR1        ; bat dau dinh thoi
Truyen: Mov SBUF,a
jnb TI,$      
    CLR  TI     ; Xoa bit TI cho ky tu ke tiep
    ret
Nhan: Mov a,SBUF
jnb RI,$
    CLR  RI     ; Xoa bit RI cho ky tu ke tiep
        Ret
Câu hỏi: Viết chương trình cho MCS51/52 thực hiện yêu cầu sau:
a.    Nhận tín hiệu từ cổng nối tiếp với tốc độ 9600 baund
b.    Nếu giá trị của cổng nối tiếp là “61h”  điều khiển p1 tạo xung
Org 00h
mov    SCON, #50h ;Port noi tiep mode 1
    mov    TMOD, #20h; su dung Timer 1 mode 2   
mov  TH1,#0Fdh  ;toc do truyen 9600 baud
    setb    TR1                ; bat dau dinh thoi
Nhan: Mov a,SBUF
jnb RI,$      
    CLR  RI     ; Xoa bit RI cho ky tu ke tiep
        Cjne a,#61h, taoxung
       Jmp nhan
      xaoxung: mov p1,#00h
               mov r1,#255H
               DJNZ r1,$
               mov p1,#255h
               mov r1,#255H
               DJNZ r1,$
     Ret
End
Câu hỏi: Viết chương trình cho MCS51/52 sử dụng thạch anh 11.0592MHz thực hiện yêu cầu sau: Truyền liên tục tín hiệu từ p0 ra cổng nối tiếp với tốc độ 9600 baund.
Org 00h
mov    SCON, #50h ;Port noi tiep mode 1
    mov    TMOD, #20h; su dung Timer 1 mode 2   
mov  TH1,#0Fdh  ;toc do truyen 9600 baud
    setb    TR1      ; bat dau dinh thoi
Truyen: Mov SBUF,a
jnb TI,$      
    CLR  TI     ; Xoa bit TI cho ky tu ke tiep
    mov a,p0
       Jmp truyen
      End
Câu hỏi: Thiết lập cho ATMEGA16 sử dụng thạch anh 8 MHz đọc dữ liệu tương tự ở PA.0, gửi ra cổng nối tiếp, với tốc độ 9600 baund.
Bước 1: File/New/Create new file
Bước 2: Chọn Project sau đó click chuột vào OK được cửa sổ hỏi xem có sử dụng Code Winzard không, chọn YES.
Bước 3: Được cửa sổ giao diện chọn:
-    Chip: Atmega16, Clock:8MHz
-    ADC: chọn ADC enabeld, Use 8 bits, Interrupt, enabled
-    USART:  chọn Receiver, Transmitter
Bước 4: Fle/Generate, Save and Exit
Unsigned char s;
Void main (void)
   {
  While(1)
        {s=data_adc[0];
        Delay_ms(200);
       Putchar(s);
         }
   }

Câu hỏi: Cho giao diện Visual Basic trên máy tính như sau:
 

Yêu cầu: Viết chương trình cho giao diện trên để khi bấm phím “TRUYỀN”, chương trình sẽ gửi ra cổng COM giá trị là “61H”, hiển thị text: “TRUYỀN DỮ LIỆU” và bấm phím “THOAT” sẽ thoát khỏi giao diện ghép nối.
Private Sub Command1_Click()
Label3.Caption = "TRUYỀN DỮ LIỆU"
 MSComm1.Output = 61h
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
End If
End Sub

Private Sub Timer1_Timer()
Label4.Caption = Format(Time, "hh:mm:ss")
End Sub

Câu hỏi: Cho giao diện Visual Basic trên máy tính như sau:
 
Yêu cầu: Viết chương trình cho giao diện trên để khi bấm phím “NHAN”, chương trình sẽ đọc giá trị cổng giá trị COM, hiển thị text: “NHẬN DỮ LIỆU” và bấm phím “THOAT” sẽ thoát khỏi giao diện ghép nối.
Private Sub Command1_Click()
Dim s As String
Label3.Caption = "NHẬN DỮ LIỆU"
 MSComm1.Input = s
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
End If
End Sub

Private Sub Timer1_Timer()
Label4.Caption = Format(Time, "hh:mm:ss")
End Sub
Câu hỏi: Viết chương trình cho MCS51/52 truyền kí tự “a”, “b”, “c” lên máy tính.
Org 00h
mov    SCON, #50h ;Port noi tiep mode 1
    mov    TMOD, #20h; su dung Timer 1 mode 2   
mov  TH1,#0Fdh  ;toc do truyen 9600 baud
    setb    TR1        ; bat dau dinh thoi
Truyen: Mov SBUF,#”a”
jnb TI,$      
    CLR  TI     ; Xoa bit TI cho ky tu ke tiep
Truyen: Mov SBUF,#”b”
jnb TI,$      
    CLR  TI     ; Xoa bit TI cho ky tu ke tiep
Truyen: Mov SBUF,#”c”
jnb TI,$      
    CLR  TI     ; Xoa bit TI cho ky tu ke tiep
      End


Câu hỏi: Viết chương trình cho ATMEGA16 truyền kí tự “a”, “b”, “c” lên máy tính.
Bước 1: File/New/Create new file
Bước 2: Chọn Project sau đó click chuột vào OK được cửa sổ hỏi xem có sử dụng Code Winzard không, chọn YES.
Bước 3: Được cửa sổ giao diện chọn:
-    Chip: Atmega16, Clock:8MHz
-    USART:  chọn Receiver, Transmitter
Bước 4: Fle/Generate, Save and Exit
Unsigned char s;
Void main (void)
   {
  While(1)
        {s= “a”;
        putchar(s);
        Delay_ms(200);
       s= “b”;
        putchar(s);
        Delay_ms(200);
        s= “a”;
        putchar(s);
        Delay_ms(200);
         }
   }



Câu 1: Trình bày cấu trúc, đặc điểm của bộ biến đổi ADC 8 bit và 12 bit.

a. ADC 0804: ADC 8bit xấp xỉ liên tiếp

Bắt đầu đổi:/CS=0, /RD=0, /RD=0, /RD: xung âm, sau thời gian chuyển đổi <0.1ms, /INTR xuống 0 báo đổi xong.

Đọc dữ liệu: /CS=0, /WR=1, /RD có xung âm, reset/INTR lên mức 1, liệu N8 bit xuất ra khi /RD=0, /RD=1 tuyến dữ liệu ở trạng thái tổng trở cao.

0<=VIN(+), VIN(-)<=5v.

    

LSB=256 (VIN(+))-

1LSB=VREF/256. VREF là 2 lần điện áp ở chân 9. N=256

 

(VIN(+)-VIN))/VREF, 0<=N<=255. Chân 9 có thể để hở, lúc đó VREF=V+, hoặc nối vào đó một nguồn Max(VIN(+)-VIN(-))/2.

b. ADC 0808/0809: ADC 8 kênh 8 bit

Hình 1.1: Sơ đồ chân của ADC0809

  

Chọn kênh: các chân ABC dùng để chọn một trong 8 ngõ vào analog, việc chọn thực hiện ở cạnh lên của chân ALE.

 

 

Chuyển đổi: START có một xung dương, làm EOC xuống 0, sau thời gian chuyển đổi EOC lên mức 1.

 

Đọc dữ liệu: OE=1,

 

N= 256*(VIN-VREF(-))/(VREF(+)-VREF(-))

 

c. ICL7109: ADC tích phân 12bit nhị phân(Harris Semiconductor)

 

Kết quả chuyển đổi điện áp vi sai giữa

 

hai chân INHI và INLO được xuất ra 12 bit

B12..B1 theo công thức N=2048*VIN/VREF, cực

 

tính điện áp chỉ bởi POL (logic 1: dương), nếu quá tầm OR on. Các chân này ở trang thái tổng trở cao. Khi

 

chuyển đổi xong chân STATUS logic 0. Điện áp giữa V+ và REF OUT

 

là 2.8 V ổn định. ICL7109 có nhiều cách để đọc kết quả. Nếu chân MODE để hở là chế độ DIRECT, /CELOAD =0, /HBEN=0, /LBEN=0 thì các chân dữ liệu tích cực.

Hình 1.2: Sơ đồ chân của ADC7109

Câu 2: Trình bày cấu trúc, đặc điểm của bộ biến đổi DAC 8 bit và 12 bit.

    

1.2.2. Chuyển đổi số –tương tự

a. AD 7524: DAC 8BIT

Hình 1.3: Sơ đồ chân của AD7524

b. AD 7845: DAC 12BIT

Hình 1.4: Sơ đồ chân của AD7845

Câu 3: Trình bày cấu trúc của rãnh cắm ISA, đặc điểm của các card mở rộng qua rãnh cắm ISA

Tra loi :

2.2.1 Cấu trúc.

Rãnh cắm thông dụng nhất là rãnh ISA

 

(Industry Standard Architecture) do IBM đưa ra năm 1980 cho máy 8086 XT (Extended Technology), sau đó là ISA 16 bit cho máy AT (Advanced Technology) và trở thành chuẩn AT Bus. Hiện nay các mainboard P4 không còn rãnh cắm này tuy nhiên việc nghiên cứu rãnh cắm ISA vẫn là cần thiết. Rãnh cắm ISA có màu đen trên mainboard gồm hai phần, phần đầu 62 chân, mỗi hàng 31 chân dùng cho trao đổi dữ liệu 8 bit, phần thứ hai 36 chân, mỗi hàng 18 chân dùng hỗ trợ thêm khi cần dữ liệu 16 bit. Sơ đồ chân rãnh cắm được cho trong hình

Sau đây là ý nghĩa vắn tắt các tín hiệu của rãnh cắm (dấu - ở trước báo tín hiệu là tích cực thấp).

SA0

÷

SA19

Tuyến địa chỉ 20 bit dùng truy cập bộ nhớ 1 Mbyte và ngoại vi. Có thể dùng với LA23 ÷ LA17

truy cập 16 Mbyte bộ nhớ. Khi truy cập ngoại vi dùng 16 bit thấp cho phép truy cập 64K địa chỉ ngoại vi.

 

Ở chế độ đọc hay ghi khi BALE mức cao, địa chỉ được xuất ra và được cài lại ở cạnh xuống của BALE. Các tín hiệu này được điều khiển bởi vi xử lý hay bộ điều khiển DMA nhưng

cũng có thể được chiếm bởi card điều khiển gắn vào rãnh cắm

LA23

÷ LA17

Dùng cùng với SA19÷0 để truy cập 16 Mbyte bộ

nhớ, không được cài lại

AEN

Cho phép bộ điều khiển DMA chiếm tuyến của vi

xử lý khi ở mức cao

BALE

Dùng để cài địa chỉ LA23 ÷ 17 hay dùng để giải

mã các địa chỉ

 

này.

CLK

Xung nhịp 4.77MHz

SD15

÷ SD0

16 bit dữ liệu

-DACK0

÷

-DACK3,

-DACK5

÷

-DACK7

0 ÷ 3 và 5 ÷ 7 dùng thông báo cho biết vi xử lý

chấp nhận DMA khi có yêu cầu ở các chân

DRQ0 ÷ DRQ3 và DRQ5 ÷ DRQ7

DRQ0

÷DRQ3,

DRQ5

÷DRQ7

Dùng khi ngoại vi yêu cầu chiếm tuyến của vi xử lý ISA phục vụ cho DMA (Direct Access Memory) để trao đổi thông tin trực tiếp với bộ nhớ. DRQ sẽ ở mức cao cho đến khi DACK tương ứng ở mức thấp

-IOCHCK

Ở mức cao khi có lỗi, ngoài ra có thể do board ISA điều khiển để yêu cầu ngắt NMI

-IOCHRDY

Cho phép các board chậm bắt vi xử lý chờ bằng cách kéo đường này xuống thấp khi đang ở chu kỳ đọc viết, lúc đó vi xử lý sẽ vào chu kỳ chờ cho đến khi đường này lên mức cao

-IOR

Báo ngoại vi xuất dữ liệu ra tuyến

-IOW

Báo ngoại vi đọc dữ liệu trên tuyến

IRQ9 ÷IRQ12, IRQ14

 

÷ IRQ15 IRQ3 ÷ IRQ7

Tín hiệu vào báo ngoại vi cần ngắt, IRQ sẽ ở mức cao cho đến khi vi xử lý chấp nhận bằng chương trình phục vụ ngắt

– SMEMR

Điều khiên bộ nhớ dưới 1 MB xuất dữ liệu ra

– SMEMW

Điều khiển ghi dữ liệu vào bộ nhớ dưới 1 Mbyte

– MEMR

Dùng để đọc dữ liệu từ bộ nhớ

– MEMW

Ghi

 

dữ liệu vào bộ nhớ

– REFRESH

Ở mức thấp nhất trong chu kỳ làm tươi bộ nhớ

OSC

Xung nhịp 14.31818 MHz.

RESET DRV

Tín hiệu reset, ở mức cao khi boot máy

TC

Báo đã đếm hết trong hoạt động DMA

– MASTER (I)

Khi board ISA có yêu cầu DMA nhận được DACK,

nó sẽ cho Master mức thấp để kiểm soát các tuyến

– MEM CS16

Ở mức thấp khi truyền dữ liệu 16 bit với bộ nhớ

– IO CS16

Do ngoại vi diều khiển ở

 

mức thấp khi muốn truyền dữ liệu 16 bit

  

– OWS

Do ngoại vi điều khiển ở mức thấp cho biết không cần trạng thái chờ

– SBHE

Ở mức thấp khi truyền byte cao

Các thiết bị ngoại vi thường dùng ngắt để tác động đến CPU yêu cầu làm việc gì đó bằng cách đưa chân IRQ lên mức cao. Các chân này thường được dành sẵn cho các thiết bị cụ thể

 

0

Timer hệ thống

 

1

Bàn phím

 

2

PIC

3

Cổng truyền thông 2

4

Cổng truyền thông 1

5

Card âm thanh

6

Điều khiển ổ đĩa mềm

 

7

Cổng song song (LPT1)

8

RAM hệ thống và đồng hồ thời gian thực

9

Modem (Motorola SM56 PCI Speakerphone Modem)

9

IRQ cho PCI

10

Điều khiển ổ đĩa cứng

11

Điều khiển USB (Inter 8237-1 AB/EB PCI to USB Universal Host Controller)

12

IRQ cho PCI

Tuyến ISA có nhiều chân nhưng thực tế sử dụng ta chỉ cần các đường địa chỉ

 

SA0..SA9, dữ liệu SD0..SD15, điều khiển –IOR, -IOW, AEN, -IOCS16, -SBHE, ngõ vào ngắt IRQ, xung nhịp CLK và nguồn. Các ngoại vi được gọi là port thường là 8 bit và việc xuất nhập thực hiện theo 8 bit, nếu xuất nhập 16 bit thì dùng hai port địa chỉ kế nhau

Việc thiết kế card ISA xuất nhập 8 bit tương đối đơn giản, bao gồm mạch giải mã địa chỉ, mạch chốt dữ liệu ra và mạch đệm dữ liệu vào. Ví dụ sử dụng địa chỉ 300 ta dùng mạch logic tạo tín hiệu /CS, mạch chốt và đệm dùng vi mạch 74LS373

  

2.2.2. Một số card ISA.

Sau đây trình bày card peripheral adapter 16 bit và hai card thu thập số liệu gắn vào rãnh ISA, (hình 2.4, 2.5, 2.6).

Card peripheral adapter sử dụng hai vi mạch 74245 đệm tuyến hai chiều cho số liệu, hai vi mạch 74244 đệm tuyến địa chỉ và điều khiển. Vi mạch 74138 giải mã địa chỉ 300 đến 3FF, khi truy cập vùng địa chỉ này, chân Y4 của

  

(/IO decode) xuống thấp đưa vào

 

(74LS244) cho phép xuất ra đường MEMW và I/O decode 8 bit. Cầu nối 8/16 bit cho phép chọn chế độ 8 bit hay 16 bit. Khi chọn chế độ 8 bit (cầu nối hở). thì 8 bit cao được truyền khi đường địa chỉ A0

 

ở mức cao (địa chỉ lẻ) và 8 bit thấp được truyền khi đường địa chỉ Ao ở mức thấp (địa chỉ chẵn)

 

Mạch chuyển đổi AD và DA 8 bit trình bày ở hình 2.5, 2.6.

Hình 2.7 là mạch chuyển đổi AD dùng IC 7109. Vi mạch ADC ICL 7109 chuyển đổi tín hiệu analog ra dạng số nhị phân 12 bit và ghép nối với máy tín qua vi mạch giao tiếp song song8255 dùng hai PORT A và B, PORT C điều khiển các chân LBEN, HBEN, R/H.

Vi mạch ICL 7109 hoạt động ở mode direct, khi R/H = 1 chuyển đổi liên tục, khi /H = 0 sẽ ngừng chuyển đổi.

Khi /LBEN ở mức 0 thì xuất byte thấp ra port A, khi /HBEN ở mức 0 xuất byte cao gồm 4 bit dữ liệu cao, PDL (cực tính), OR (quá tầm) và Status (trạng thái)

Quá trình đọc kết quả như sau:

Cho R/H lên mức cao để bắt đầu chuyển đổi, sau đó chờ

Status xuống mức 0 đổi xong, rồi cho

 

- LBEN

 

và - HBEN

 

mức 0 để đọc dữ liệu vào

Câu 4: Trình bày cấu trúc của rãnh cắm PCI, đặc điểm của các card mở rộng qua rãnh cắm PCI.

Tra loi

2.3.1. Cấu trúc.

Rãnh cắm PCI

 

(Peripheral Component Interconnect) có màu trắng trên mainboard cho phép giao tiếp ngoại vi 32 hay 64 bit vận tốc nhanh đến 132 Mbyte/s so với rãnh cắm ISA 16 bit có vận tốc 3÷5 Mbyte/s. Nhờ vận tốc cao nên rãnh PCI thường dùng cho card màn hình, sau đó nó được sử dụng để cho các card khác như card mạng, modem nội, âm thanh… và dần dần các mainboard đời mới không dành chỗ cho rãnh ISA nữa. Các hãng như Advantech, Data translation… cũng đã sản xuất card giao tiếp ngoại vi cho máy tính dùng rãnh PCI.

Rãnh PCI 64 bit có hai hàng tiếp điểm, mỗi bên 94 tiếp điểm phía A là phía linh kiện còn phía B là phía hàn. Do tính chất phức tạp của tuyến và vận tốc tín hiệu lớn nên việc tự ráp card giao tiếp PCI khó thực hiện mà phải dùng card chính hãng.

Năm 1998 các hãng Compaq, Hewlett - Packard, IBM phối hợp đưa ra chuẩn PCI-X (PCI Express) có đặc tính tốt hơn. Tuyến PCI 32 bit sử dụng chung 32 đường địa chỉ data ADO - 31, pha địa chỉ do tín hiệu FRAME# điều khiển, sau đó là một hay nhiều pha dữ liệu. Tuyến PCI 64 bit dùng 64 đường ADO - 63 cho địa chỉ và dữ liệu. Có hai loại tuyến PCI mức tín hiệu 5V và mức tín hiệu 3,3V

Sau đây là mô tả các tín hiệu của PCI:

CLK

Xung nhịp 33MHz, 66MHz

RST#

Tín hiệu reset

AD0÷ AD31

Tuyến địa chỉ khi FRAME# ở mức thấp

C/BEO ÷ 3# BUS

(Command BytesEnables)

Cho biết loại của truyền dữ liệu (đọc/viết bộ nhớ, ngoại vi…)

PAR

Kiểm tra parity của ADO÷31 và C/BEO÷3

IRDY# (Initiator Ready)

TRDY# (Target Ready)

Hai dữ liệu bắt tay giữa bộ phát và bộ nhận dữ liệu trên tuyến PCI

STOP#

Tín hiệu target báo cho initiator để chấm dứt giao dịch, initiator là chủ của tuyến (bus master) còn target là bus slave. Việc truyền dữ liệu do initiator bắt đầu thông qua C/BE và IRDY còn target trả lời thông qua TRDY# và STOP#

LOCK#

Tín hiệu initiator báo dành riêng một số địa chỉ của target.

IDSEL (Initialigation Devia Select)

Tín hiệu chọn chip

DEVSEL# (Device Select):

Của nó trên tuyến PCI do target điều khiển khi nó thấy địa chỉ của nó trên tuyến PCI

REQ#

Đã được chấp nhận (grant)

GNT#

REQ#

PERR# (Parity Error)

SERR# (System Error)

Sai hệ thống

INTA#, INTB#, INIC#,

INID#

Các tín hiệu ngắt

SBO# (Snoop Backoff)

SDONE (Snoop done)

Dùng cho card memory

PRSNT 1 ÷ 2#

Cho biết có board cắm vào slot và công suất tiêu thụ của board đó

CLKRUN# (Clock

Running)

Cho phép điều khiển xung nhịp CLK

MGGEN (66 MHz enable)

Cho biết xung nhịp 33 MHz hay 66 MHz

AD 32 ÷ 63

32 đường địa chỉ và dữ liệu cao trong PCI 64 bit.

C/BE 4 ÷ 7#

Dùng khi truyền 64 bit kết hợp với REQ 64# và ACK 64#, PAR 64

REQ 64# (Request 64 bit

transfer)

ACK 64# (Acknowledge 64 bit transfer)

TCK(Test clock)

TDI(Test data input)

TDO(Test output)

TMS (Test mode Select)

TRST# (Test Reset)

Các tín hiệu thử

Đặc điểm của các board cắm trên tuyến PCI là dữ liệu có thể truyền không thông qua CPU chủ do đó vận tốc xử lý tín hiệu nhanh hơn.

Card DT 300 của hãng Data Translation cho phép đổi 16 tín hiệu analog ra số phân giải 16 bit với vận tốc 250.000 mẫu/sec, đổi số ra analog hai kênh 16 bit, xuất nhập digital 23 bit.

Hình 2.8: Sơ đồ khối card DT300 của hãng Data Translation

C/BE#

Lệnh

C/BE#

Lệnh

0000

Chấp nhận ngắt

 

1000

Dự trữ

0001

Chu kỳ đặc biệt

 

1001

Dự trữ

0010

Đọc Ngoại vi xuất nhập

 

1010

Đọc Cấu hình (Với IDSEL)

0011

Ghi Ngoại vi xuất nhập

 

1011

Ghi

 

Cấu hình (Với IDSEL)

0100

Dự trữ

 

1100

Đọc nhiều ô nhớ

0101

Dự trữ

 

1101

Chu kỳ địa chỉ kép

0110

 

nhớ

Đọc bộ nhớ

 

1110

Đường đọc bộ nhớ

0111

Ghi bộ nhớ

 

1111

Ghi bộ nhớ và cấm

2.3.2. Card giao tiếp rãnh PCI

Trong mục trước chúng ta đã nghiên cứu các card ISA, việc thiết kế các card này tương đối đơn giản. Do các mainboard đời mới không còn hỗ trợ tuyến ISA nên chúng ta phải chuyển sang sử dụng tuyến PCI bằng cách mua các card chuyên dụng của các hãng với phần mềm kèm theo. Do sự phức tạp của tuyến PCI, việc tự thiết kế và chế tạo card PCI tương đối khó khăn, đòi hỏi sử dụng các linh kiện FPGA có mật độ tích hợp cao, mạch in nhiều lớp và công nghệ dán,

 

ngoài ra việc lập trình cho card này cũng không phải dễ dàng mà

 

phải thông qua các hàm Windows API. Việc thiết kế sẽ trở nên dễ dàng hơn nếu dùng các bộ PCI development kit có sẵn. Các bộ kit này giúp tạo các ứng dụng PCI khác nhau cùng với software kèm theo.

Cấu trúc chung card PCI như sau:

Phần tử chính trong card là vi mạch PCI Controller dùng làm cầu nối giữa tuyến PCI và mạch người dùng, chế tạo bởi cáchãng theo công nghệ ASIC, ví

 

dụ như PCI9050/9054 của PLX Technologies, ispLSI 1032E của

 

Lattice… Phần tử thứ hai là EEPROM dùng để chứa thông tin về card phục vụ cho PnP (Plug and Play) khi khởi đông máy tính. User Bus gồm tuyến dữ liệu 16 bit, tuyến địa chỉ và tuyến điều khiển dùng kết nối với các linh kiện thông thường. Thông qua Development Kit chúng ta có thể học tập cách thiết kế card. Một card tiêu biểu là PCI-Proto LAB/PLX-M vi mạch (www.pci-tools.com) hoặc card PIKS-161

 

(www.komcard.com)

.

Câu 5: Khái niệm chung về cổng nối tiếp và truyền thông nối tiếp.

3.1.

 

Khái niệm chung

Cổng nối tiếp trên máy tính, thường gọi là cổng COM, được sử dụng để truyền dữ liệu hai chiều giữa máy tính và ngoại vi, có các ưu điểm sau:

- Khoảng cách truyền dài hơn

 

so với cổng song song. Cổng nối tiếp truyền mức 1 từ

 

-3V đến

 

-25V và mức 0 từ +3V đến +25V nên tính chống nhiễu cao hơn, cho phép khoảng cách truyền xa hơn.

- Số dây kết nối ít, tối thiểu ba dây.

- Có thể ghép với đường dây điện thoại, cho phép khoảng cách truyền chỉ bị giới hạn bởi mạng tổng đài điện thoại.

- Có thể truyền không dây dùng tia hồng ngoại.

- Ghép nối dễ dàng với vi điều khiển hay PLC.

- Cho phép nối mạng.

Các thiết bị ghép nối nối tiếp chia làm hai loại DTE

 

(Data Terminal Equipment)

 

và DCE (Data Communication Equipment) DCE là các thiết bị trung gian như modem, còn DTE là các thiết bị như máy tính, vi điều khiển, PLC, là nguồn tạo ra dữ liệu hay tiếp nhận dữ liệu để xử lý. Có thể ghép nối DTE với DTE hoặc DCE, DCE với DTE hoặc DCE. Tín hiệu truyền nối tiếp theo dạng xung chuẩn RS 232 của EIA (Electronics Industry Associations), mức logic 0 còn gọi là Space giữa +3 và +25V, mức logic 1 còn gọi là Mark, ở giữa -3V và -25V.

Từ DTE tín hiệu được truyền giữa hai dây TXD và GND theo khuôn dạng sau:

Khi không truyền đường dây sẽ ở trạng thái Mark, khi bắt đầu truyền, xung Start được truyền (+10 V) sau đó là 8 bit dữ liệu, bit D0 được truyền trước, nếu

 

bit dữ liệu logic 0 thì điện áp đường dây tương ứng là +10V, sau các bit dữ liệu là bit kiểm tra chẵn lẻ rồi bit stop ở logic 1(-10V), DTE nhận tín hiệu truyền ngược trở lại theo đường RXD. Nếu nối hai DTE với nhau thì dùng sơ đồ H.3.1a.

Hình 3.1: Sơ đồ khối đấu nối DTE với DCE

Trường hợp nối DTE với DCE thì chân TXD của DCE nhận tín hiệu còn chân RXD phát tín hiệu (nối 1-1) (H.3.1b).

Tín hiệu truyền nối tiếp dưới dạng các bit, số bit trong một giây được gọi là baud, vận tốc

 

truyền thông dụng là 300, 600, 1200, 2400, 4800, 9600, 19200… baud. Nếu dùng vận tốc 9600 baud và khung truyền 8, E, 2 (8 bit dữ liệu, 1 bit kiểm tra chẵn, 2 bit stop) thì truyền một byte chiếm 12 bit vậy một giây truyền được 800 byte, thời gian truyền 1 bit là ~ 0,1msec. Các modem đời mới có thể đạt tốc độ 56000 baud, tuy nhiên các vi mạch truyền nối tiếp có thể đạt tốc độ cao hơn đến 115200 baud (vi mạch 16550) 230400 baud (16C650) vì vậy các modem phải nén tín hiệu trước khi truyền trên đường. Kết nối giữa máy tính (DTE) và modem (DCE) thực hiện theo nguyên tắc các chân cùng tên nối với nhau. Còn khi kết nối DTE và DTE thường dùng sơ đồ sau:

  

Khi DTE cần truyền dữ liệu thì DTR tích cực đưa về DSR cho biết phía nhận sẵn sàng, đưa về CD cho biết đã nhận được sóng mang của modem ảo. Hai DTE có cùng khung truyền nên RTS và CTS nối với nhau. Đôi khi có thể bỏ đường nối DTR với DSR và CD.

Khi kết nối DTE với DCE, do vận tốc truyền khác nhau, cần điều khiển lưu lượng. Có hai cách là dùng phần cứng và phần mềm. Khi dùng phần cứng sử dụng hai dây RTS và CTS. Nếu DTE muốn truyền sẽ cho RTS tác động, nếu DCE chấp nhận sẽ gởi trở về CTS và máy tính sẽ gởi dữ liệu, nếu máy tính không nhận được CTS sẽ không gởi dữ liệu. Điều khiển lưu lượng bằng phần mềm dùng hai ký tự Xon và Xoff. Khi modem muốn máy tính ngừng truyền sẽ gởi đi ký tự Xoff (ASCII 19) còn khi modem rảnh nó sẽ gởi ký tự Xon (ASCII 17).

Việc trao đổi dữ liệu của máy tính được thực hiện thông qua vi mạch UART

 

(Universal Asynchronous Receiver Transmitter) còn với vi điều khiển hay PLC thì có các vi mạch chuyên dụng hoặc được tích hợp trong vi xử lý. Các máy tính đời mới dùng công nghệ ASIC sử dụng chip đa năng làm nhiều nhiệm vụ giao tiếp nối tiếp, song song, cổng trò chơi, điều khiển đĩa, tuy nhiên phần giao tiếp nối tiếp thiết kế

 

tương hợp với các vi mạch UART rời. Các loại vi mạch UART thường gặp là 8250, 8250A, 16450, 16550, 16650, 16750, … 6402

Các cổng nối tiếp được đánh số COM 1, COM 2, COM 3, COM4.

Bảng sau

cho địa chỉ gốc cổng COM và các thông tin khác

Câu 6: Vẽ hình, trình bày nguyên lý hoạt động mạch chuyển mức dùng MAX232.

3.2. Mạch chuyển mức.

    

 

Khi ghép cổng COM máy tính với vi điều khiển hay mạch TTL cần phải có mạch chuyển mức TTL MAX 232 và ngược lại. Các vi mạch thường dùng là cập MC1488-MC1489, MAX232 (Maxim) hoặc DS275 (Dallas), SN75150- SN75154. Loại MAX232 thông dụng hơn cả vì

 

chỉ cần nguồn 5V, nguồn ±10V do mạch dao động 16KHz bên trong cung cấp.

Hình 3.9: Sơ đồ nguyên lý mạch MAX232

Câu 7: Trình bày các đặc tính kỹ thuật,giao diện của RS232.

Tra loi

RS-232 (tương ứng với chuẩn châu Âu là CCITT V.24) lúc đầu được xây dựng phục vụ chủ yếu trong việc ghép nối điểm-điểm giữa hai thiết bị đầu cuối , giữa máy tính và máy in, hoặc giữa một thiết bị đầu cuối và và một thiết bị truyền dữ liệu.

Mặc dù tính năng hạn chế, RS-232 là một trong các chuẩn tín hiệu có từ lâu nhất,

 

 

thế được

 

sử dụng

 

rất

 

rộng

 

rãi. Ngày

 

nay, mỗi máy

 

tính

 

cá nhân đều có một vài cổng RS-232 (cổng COM), có thể sử dụng tự do để nối với các

 

thiết bị ngoại vi hoặc với các máy

 

tính khác. Nhiều

 

thiết bị công nghiệp cũng tích hợp cổng RS-232 phục vụ lập trình hoặc tham số hóa.

 

Hình 3.3: Sơ đồ khối kết nối DTE-DTE qua MODEM

a.

     

Đặc tính.

RS-232 sử dụng phương thức truyền không đối xứng, tức là sử dụng tín hiệu điện áp chênh lệch giữa một dây dẫn và đất.

-

 

Mức điện áp

 

logic được định nghĩa -3V->

 

-25V mức

 

logic "1" và +3V-> +25V mức logic "0".

- Tốc độ truyền dẫn tối đa phụ thuộc vào chiều dài dây dẫn. Đa số các hệ thống hiện nay chỉ hỗ trợ tới tốc độ 19.2 kbps

- Chiều dài cho phép 15m ( 50 feet).

 

- Truyền số liệu Full-duplex sử dụng 3 dây: TxD, RxD, GND.

-

 

Các

 

tín

 

hiệu

 

điều

 

khiển

 

dùng

 

để

 

bắt

 

tay

 

(Handshaking)

 

phần

 

cứng

 

là: RTS, CTS, DSR, DTR. Mức logic:+3V¸ +25V -> "1" và <0V -> "0".

- Truyền không đồng bộ, cấu trúc một khung truyền bao gồm: 1 start bit, 7-8 data bit, 1- 0 parity bit, 1-1,5-2 stop bit. (Gần đây, sự tiến bộ trong vi mạch đã góp phần nâng cao tốc độ của cổng RS-232 lên nhiều lần so với tốc độ 19,2kbps. Hiện nay đã có những mạch thu phát đạt tốc độ 460kbd và hơn nữa,

 

tuy nhiên

 

tốc độ

 

truyền dẫn

 

thực

 

tế

 

lớn hơn 1 15.2 kbd

 

theo chuẩn RS-232 trong một hệ thống làm việc dựa vào ngắt là một điều khó có thể thực hiện)

b.

     

Giao diện

Chuẩn RS-232 qui định ba

 

loại giắc cắm RS-232

 

là DB-9, DB-25 và ALT-A, trong đó hai loại đầu được sử dụng rộng rãi hơn.

 

Hình 3.4: Sơ đồ chân cổng COM và đấu nối DTE và DCE

Ý nghĩa của các chân quan trọng được mô tả dưới đây:

-

 

RXD (receive Data): Đường nhận dữ liệu.

-

 

TXD (Transmit Data): Đường gửi dữ liệu.

- DTR

 

(Data Terminal Ready): Báo DTE

 

sẵn

 

sàng

 

.Chân DTR

 

thường ở

 

trạng thái ON khi thiết bị đầu cuối sẵn sàng thiết lập kênh truyền thông (tự động quay số hay

 

tự động

 

trả

 

lời). DTR ở

 

trạng

 

thái OFF chỉ khi

 

thiết bị đầu cuối không muốn DCE của nó chấp nhận lời gọi từ xa.

- DSR

 

(Data Set Ready): Báo DCE

 

sẵn

 

sàng, ở chế độ

 

trả

 

lời, 1

 

tone

 

trả

 

lời và DSR ON sau 2 giây khi Modem nhấc máy.

-

 

DCD

 

(Data Carrier Detect): Tín hiệu này

 

tích cực khi Modem nhận được

 

tín hiệu từ trạm từ xa và nó duy trì trong suốt quá trình liên kết.

-

 

RTS

 

(Request To Send): Đường RTS kiểm soát chiều

 

truyền dữ

 

liệu. Khi một trạm cần gửi dữ liệu, nó đóng mạch RTS sang ON để báo hiệu với modem của nó.

-

 

CTS (Clear To Send): Khi CTS chuyển sang ON, Modem xác nhận là DTE có thể truyền số liệu.

 

Quá trình ngược lại nếu đổi chiều truyền số liệu

-

 

RI

 

(Ring

 

Indicator):

 

Khi

 

modem

 

nhận

 

được

 

tín

 

hiệu

 

chuông,

 

RI

 

chuyển ON/OFF một

 

cách

 

tuần

 

tự

 

với

 

chuông

 

điện

 

thoại

 

để

 

báo

 

hiệu

 

cho

 

trạm

 

đầu cuối. Tín hiệu này chỉ thị rằng một modem xa yêu cầu thiết lập liên kết dial-up.

Câu 8: Trình bày các đặc tính kỹ thuật,giao diện của RS485.

3.3.2. RS485

a. Đặc tính.

Chuẩn RS 232 dùng đường truyền không cân bằng vì các tín hiệu đều lấy điểm chuẩn là đường mass chung, bị ảnh hưởng của nhiễu tác động, do đó tốc độ truyền và khoảng cách truyền bị giới hạn.

Khi cần tăng khoảng cách và

 

tốc độ truyền, phương pháp truyền hai dây vi sai trở nên hữu hiệu hơn vì hai dây có đặc tính giống nhau, tín hiệu truyền đi là hiệu số điện áp giữa hai dây, do đó loại trừ được nhiễu chung. Hai chuẩn thường dùng là RS422 và RS485. Tuy nhiên chuẩn RS422 ít thông dụng hơn RS485.

Hình 3.5: Sơ đồ mạch chuyển đổi RS232 sang RS422

Chuẩn RS422 dùng 4 dây do đó cho phép truyền song công, tức là cùng lúc có thể thu phát. Tín hiệu từ máy tính theo chuẩn RS 232 có mức điện áp ±12V phải đổi sang mức TTL 0 - 5V dùng vi mạch MAX232, sau đó tín hiệu đơn được đổi sang tín hiệu vi sai dùng vi mạch MAX485 (488, 489, 490, 491). Điện áp vi sai phải lớn hơn 200mV. Nếu

 

AB V > 200mV ta coi như trị logic 1 được truyền còn nếu

 

< - AB V 200mV thì trị logic 0 được truyền.

b. Giao diện

Chuẩn RS422 không cho phép có hơn hai thiết bị truyền nhận tin trên đường dây, vì vậy chuẩn RS485 thông dụng hơn. Với chuẩn RS485 ta có thể nối 32 thiết bị thu phát trên hai dây có khoảng cách tối đa 1200m và vận tốc truyền đến 10Mbit/s. Hai điện trở kết thúc 120Om được nối với hai đầu xa nhất của mạng,

 

dây dẫn là loại dây xoắn đôi 26AWG. Chuẩn này dùng vi mạch lái SN75176 hay họ Maxim MAX481, 483, 485 , 487, 488, 489, 490,

 

1487. Tiêu biểu là vi mạch MAX485

  

chuyển đổi từ tín hiệu đơn sang tín hiệu vi sai, có chân điều khiển cho ngõ ra vi mạch ở tổng trở cao, nhờ vậy có thể nối chung nhiều vi mạch lái với nhau.

 

Hình 3.5: Sơ đồ mạch chuyển đổi RS232 sang RS485

MAX485 gồm bộ lái và bộ thu, tín hiệu vào bộ lái D logic TTL đổi thành hai tín hiệu A và B,

 

khi tín hiệu điều khiển DE mức thấp thì hai chân AB cách ly với vi mạch. Tín hiệu vào bộ thu là A và B, tín hiệụ ra R logic TTL tùy thuộc hiệu điện áp giữa A và B, khi /RE logic 1 thì R cách ly với vi mạch.

Hình 3.6 : Sơ đồ chân MAX 485

Mạng 485 làm việc theo chế độ master -slave, master cho DE mức 1 để truyền dữ liệu, còn các slave có DE=0, /RE=0 chờ nhận dữ liệu, Khi master muốn nhận dữ liệu, DE=0, /RE=0 còn slave phát sẽ có DE=1, /RE=1. Điều khiển các đường DE,/RE bằng tín hiệu RTS hay mạch định thì.

Đối với chuẩn RS232, khoảng cách truyền không cho phép đi xa nên khi muốn thực hiện truyền ở khoảng cách xa thì phải chuyển từ RS232 sang chuẩn RS485 để truyền đi và sau

 

đó chuyển từ RS485 sang RS232

 

để máy tính có thể nhận dạng

 

được. Sơ

 

đồ mạch chuyển đổi từ RS232 sang RS485 và ngược lại mô tả như sau:

Câu 9: Khái niệm chung về cổng song song, các chế độ hoạt động của cổng song song được sử dụng trong máy vi tính.

Khái niệm chung

Cổng song song thường dùng để giao tiếp máy vi tính với đối tượng bên ngoài nhờ các đặc điểm:

- Lập trình đơn giản, dễ kết nối

- Tốc độ nhanh.

Khuyết điểm của cổng song song là khoảng cách ngắn do tính chống nhiễu kém. Theo tiêu chuẩn IEEE 1284 năm 1994 có 5 chế độ hoạt động cho cổng song song.

- SPP :cổng song song chuẩn có 3 mode là:

 

+ Compatibility: xuất 8 bit

 

+ Nibble: nhập 4 bit

 

+ Byte: cổng hai chiều

- EPP: cổng song song tăng cường (enhanced parallel port)

- ECP: cổng mở rộng khả năng (extended capability port)

Tùy loại mainboard có thể hỗ trợ cả 5 mode hay chỉ vài mode. Cổng SPP có thể truyền dữ liệu song song 8 bit từ máy tính ra với vận tốc 50 Kbytes/sec đến 150 Kbytes/sec. Khi muốn nhập dữ liệu vào máy tính có thể dùng mode Nibble truyền 4 bit hay mode Byte truyền 8 bit.

Cổng EPP và ECP dùng thêm phần cứng hỗ trợ nên vận tốc truyền nhanh hơn, có thể đến 2 Mbytes/sec, thu phát song song 8 bit.

Thay đổi chế độ của cổng song song bằng cách vào BIOS SETUP của máy tính khi khởi động máy.

    

4.2. Các chế độ hoạt động của cổng song song

                

4.2.1. SPP

Cổng song song có đầu nối 25 chân cái thường dùng để kết nối với máy in đầu nối Centronics 34 chân.

Sơ đồ chân và ý nghĩa các chân của cổng SPP khi dùng với máy in, dấu “/” có nghĩa tích cực thấp. Ví dụ, chân 15 là /Error hướng vào, nếu chân này xuống mức 0 là có lỗi. Cột Đảo ghi chữ Có tức là tín hiệu được đảo mức, ví dụ chân 17 khi đưa mức logic 0 ứng với chân này vào thanh ghi điều khiển thì ở chân 17 xuất hiện mức 1.

Ngõ ra cổng song song tương thích với cổng TTL, dòng cấp và thu khoảng vài mA đến 16mA tùy loại kết cấu phần cứng (công nghệ ASIC).

Giao tiếp cổng song song với máy in thường được thực hiện theo sơ đồ sau:

Ban đầu dữ liệu 8 bit được đưa ra, máy tính đọc chân Busy nếu ở mức thấp thì máy in rảnh, sẽ đưa ra tín hiệu Strobe rộng 1­sec và máy in đọc dữ liệu, đọc xong sẽ báo trở lại bằng

 

/ACK

 

rộng 5­sec. Nếu máy in bận thì Busy sẽ ở mức cao.

Việc giao tiếp được thực hiện qua 3 thanh ghi: thanh ghi dữ liệu, thanh ghi điều khiển và thanh ghi trạng thái. Thông thường sử dụng hai địa chỉ gốc là:

               

    

378H cho LPT1 (line printer 1)

     

278H cho LPT2

Một số máy dùng địa chỉ 03BC.

- Thanh ghi dữ liệu có địa chỉ gốc +0, 8 bit, nhận dữ liệu để xuất ra ngoài, dữ liệu được chốt..

- Thanh ghi trạng thái địa chỉ gốc +1 là thanh ghi chỉ đọc dùng để nhận tín hiệu từ ngoài vào, có 5 tín hiệu vào.

Busy

11

/ACK

10

Paper Out

12

Select

13

/Error

/IRQ

X

X

Chú ý là bit Busy được đảo, nghĩa là nếu chân 11 có điện áp +5V thì bit D7 của thanh ghi trạng thái mức logic 0, bit D2 bằng 0 khi có ngắt từ /ACK.

- Thanh ghi điều khiển có bốn đường ra điều khiển, địa chỉ gốc +2, các đường này dùng cực thu hở do đó có thể giao tiếp hai chiều.

X

X

Cho phép cổng 2 chiều

Cho phép IRQ qua ACK

Chọn máy in/select

17

Khởi động máy in /Init

16

Xuống hàng

/Auto linefeed

14

Kích

/Strobe

1

Các chân 1, 11, 14 và 17 được đảo phần cứng, bit D6 thanh ghi trạng thái (chân số 10) từ 1->10 thì gây ra ngắt IRQ7 nếu được cho phép bởi D4 của thanh ghi điều khiển =1.

Hình 4.2 : Sơ đồ thanh ghi dữ liệu hai hướng

Một số mainboard (H 4.2) hỗ trợ giao tiếp hai chiều qua thanh ghi dữ liệu,

 

bit D5 của thanh ghi điều khiển bằng 1 thì cho phép các chân 2..:9 của thanh ghi dữ liệu có chiều đi vào, nghĩa là có thể đưa tín hiệu vào các chân này rồi đọc thanh ghi dữ liệu.

Các chân của thanh ghi điều khiển có ngõ ra cực thu hở nên có thể nhận tín hiệu vào nếu trước đó ta đã nạp 8 bit sao cho các ngõ ra ứng với thanh ghi này lên 1 (sơ đồ H 4.3). Do các tín hiệu /Busy, /Select, /AF và /Strobe đã được đảo phần cứng nên ta thêm các cổng đảo, logic đọc vào phản ảnh đúng mức tín hiệu.

Trong một số trường hợp, các chân ra của thanh ghi điều khiển không dùng loại cực thu hở mà dùng cột totem chỉ có một chiều xuất, lúc đó có thể dùng bộ phân kênh để đọc 4 bit dữ liệu vào thanh ghi trạng thái, đọc hai lần sẽ được 8 bit dữ liệu (H4.4).

Trong sơ đồ chân /Strobe được dùng để chọn nửa byte thấp khi ở mức 0 tức là bit D0 của thanh ghi điều khiển ở mức 1.

Với sơ đồ này việc xuất nhập dữ liệu 8 bit được thực hiện như sau:

1- Xác định địa chỉ gốc của cổng LPT

2- Muốn xuất dữ liệu, ghi dữ liệu 8 bitvào thanh ghi dữ liệu, muốn xuất nhiều hơn 8 bit có thể dùng kèm các tín hiệu Init, Select … bằng cách ghi vào thanh ghi điều khiển byte thích hợp.

3- Muốn đọc dữ liệu, ghi bit D0 = 1 vào thanh ghi điều khiển, đọc 4 bit cao của thanh ghi trạng thái (4 bit thấp của dữ liệu vào), rồi dời phải 4 bit, sau đó cho D0 của thanh ghi điều khiển bằng 0, đọc 4 bit cao của thanh ghi trạng thái (4 bit cao của dữ

 

liệu vào), kết hợp hai lần đọc ta được 1 byte rồi exclusive OR với 88H để đảo hai bit D7 và D3 (do Busy đảo).

 

Hình 4.4 : Vào 8 bit với 74LS157

                

4.2.2. Cổng EPP

Cổng EPP là sản phẩm liên kết của Intel, Xircom và Zenith, có hai chuẩn là EPP1.7 và EPP1.9, vận tốc truyền từ 500 Kbytes/s đến 2 Mbytes/s nhờ sự hỗ trợ của phần cứng và kỹ thuật DMA.

Khi chuyển cổng song song sang chế độ EPP (vào mục Setup khi khởi động máy tính để đặt chế độ) các chân cổng sẽ mang tên gọi và ý nghĩa khác.

Cổng EPP có thêm một số thanh ghi như sau:

Ba thanh ghi đầu giống như trong SPP. Muốn truyền dữ liệu theo EPP ta đưa dữ liệu vào thanh ghi gốc +4 và mạch logic sẽ tạo các tín hiệu cần thiết.

Khi nhận dữ liệu, đầu tiên chương trình đọc thanh ghi gốc +4. Nếu /Wait mức thấp thì /Data Strobe sẽ ở mức thấp chờ khi /Wait ở mức cao bên kia báo đã gởi dữ liệu tới,

 

/Data Strobe sẽ ở mức cao và dữ liệu được đọc vào. Chu kỳ xuất và nhập dữ liệu cũng giống như chu kỳ xuất và nhập địa chỉ. Thường kết hợp địa chỉ và dữ liệu để truy xuất dữ liệu từ các địa chỉ ngoại vi khác nhau.

Phần cứng ngoại vi có nhiệm vụ xử lý các chân /Write, /Data Strobe, /Address Strobe đưa vào các mạch cài hay cho phép và xuất tín hiệu /wait phù hợp. Thông qua tín hiệu Interrupt (chân số 10) ngoại vi sẽ tác động đến máy tính, bit 0 của thanh ghi trạng

 

thái là bit báo hết thời gian EPP. Nếu trong khoảng 10µs đường /Wait không tác động khi /Data Strobe hay /Address strobe tác động thì bit này sẽ được đặt lên 1.

 

4.2.3. Cổng ECP

Cổng ECP được phát triển bởi Hewlett Packard và Microsoft, sử dụng phần cứng hỗ trợ cho việc truyền dữ liệu nên có vận tốc truyền nhanh, tương tự cổng EPP. Đặc điểm của cổng ECP là nén dữ liệu khi truyền, cho phép tăng tốc độ truyền dữ liệu. Cổng ECP dùng 11 thanh ghi từ gốc+0 đến gốc+7 và gốc+400H đến gốc +402H. Chân cổng ECP được qui định trong sau.

Khi truyền dữ liệu từ máy tính ra ngoại vi thì HostAck sẽ đổi mức, còn truyền dữ liệu từ ngoại vi vào máy tính thì PeriphAck đổi mức. Trên tuyến dữ liệu có thể truyền dữ liệu hay lệnh. Nếu Host Ack và Periph Ack ở mức cao là truyền dữ liệu. Nếu máy tính gởi lệnh, Host Ack mức thấp; nếu ngoại vi gởi lệnh, Periph Ack mức thấp. Lệnh gồm hai loại, nếu bit 7 của tuyến dữ liệu (chân 9) ở mức thấp thì 7 bit còn lại dùng để cho biết thông tin về nén dữ liệu. Nếu bit 7 ở mức cao thì 7 bit còn lại là địa chỉ kênh. Khi truyền dữ liệu nén, đầu tiên truyền số lần lặp lại của byte dữ liệu, sau đó truyền byte dữ liệu, ví dụ truyền 25 byte ký tự ‘A’ thì gởi byte 24 (Run length Count) sau đó gởi byte

 

‘A’.

 

Ngoại vi nhận được byte 24 trong chu kỳ lệnh sẽ lặp lại byte ‘A’ ở chu kỳ dữ liệu 25 lần. Tỷ số nén tối đa 64/1.

 

Để tăng tốc độ truyền dữ liệu, cổng ECP dùng các thanh ghi sắp xếp kiểu FIFO và một số thanh ghi phụ.

Thanh ghi điều khiển mở rộng cho phép chọn kiểu hoạt động của cổng song song. Thanh ghi cấu hình A và B sử dụng để đặt cấu hình của cổng ECP.

Câu 10: Nêu trình tự thực hiện lập trình bộ nhớ và kiểm tra của vi điều khiển.

 

AT89C2051 có Flash ROM 2Kbyte trên chip ở trạng thái xóa FFH, sẵn sàng để lập trình, lập trình từng byte một , khi đã lập trình muốn lập trình lại một byte cũng phải xóa toàn bộ bộ nhớ. Đếm địa chỉ bộ nhớ bằng bộ đếm trong nhận xung đếm tư cạnh lên của XTAL1, và được xóa về 000H bởi cạnh lên của RST.

   

Lập trình bộ nhớ theo thứ tự sau:

1. Cấp nguồn 5V giữa VCC

 

 

GND , RST và

 

XTAL1 mức 0

2. Đặt

 

RST mức cao, chân P3.2 mức

 

cao

3. Cung cấp các mức

 

logic phù hợp cho các chân

 

P3.3, P3.4, P3.5, P3.7

theo các mục sau:

 

LậpTrình và kiểm tra:

4. Đưa dữ liệu code địa chỉ

 

000H vào P1.0 đến

 

P1.7.

5. Nâng RST lên

 

12V để cho phép lập trình.

6. Tạo xung P3.2 để lập trình một byte hay bit khóa thời gian lập trình

khoảng 1.2ms.

7. Muốn kiểm tra dữ liệu hạ RST từ 12V đến mức 5V và đặt các chân P3..3

đến P3.7 mức thích hợp. Dữ liệu ra đọc ở

 

port P1

8. Lập trình địa chỉ kế

 

cho XTAL1 một xung để tăng bộ đếm địa chỉ trong, đưa code vào P1.

9. Lập lại bước 6 đến

 

8, thay đổi dữ liệu và tăng bộ đếm địa chỉ cho đến khi hết bộ nhớ hay đến cuốí file.

 

10, Đặt

 

XTAL1 và RST mức thấp, tắt nguồn Ready/Busy: Khi đang lập trình chân P3.1 ở mức thấp báo bận, khi lập trình xong chân này ở mức cao báo sẵn sàng

 

Program Verify: Nếu các bit khóa LB1 và

 

LB2 chưa đước lập trình

 

code có thể đọc lại để kiểm tra

 

1. Xóa bộ đếm trong khi RST có cạnh lên.

2. Đặt các mức logic phù hợp và đọc code ở port P1.

3. cấp một xung vào chân XTAL1 để sang ô nhớ kế

 

4. Đọc

 

code.

 

5. Lập lại các bước 3 và 4 .

Chip Erase: Bộ nhớ và bit khóa được xóa bởi các mức logic phù hợp như bảng

trên và P3.2 có xung thấp 10ms

 

Reading the Signature Bytes: Byte

 

signature được đọc ở địa chỉ 000H, 001H,

và 002H, với P3.5 và P3.7 ở mức thấp.

(000H) = 1EH ký hiệu Atmel

(001H) = 21H ký hiệu 89C2051



Bạn đang đọc truyện trên: AzTruyen.Top

Tags: #pjngo