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, vì 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 1sec và máy in đọc dữ liệu, đọc xong sẽ báo trở lại bằng /ACK rộng 5sec. 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 và 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