Nhận thấy đợc rõ tầm quan trọng và những u điểm của việc lập trình điều khiển thiết bị, các thầy giáo trong khoa Điện Điện tử tàu biển, các thầy giáo trong Bộ môn Điện Tử Viễn Thông đã g
Trang 1Trờng đại học hàng hải việt nam Khoa điện - điện tử tàu biển
Trờng đại học hàng hải việt nam
Khoa điện - điện tử
Bộ môn điện tử - viễn thông
-o0o -Luận văn tốt nghiệp
Trang 2Đề tài :
Thiết kế mạch quang báo sử dụng Slot ISA.
Sinh viên : Trịnh Minh Hải
GV hớng dẫn :Hồ Nhật Tiến
Mục lục Lời nói đầu
P
hần 1 : Các lý thuyết cơ sở
Chơng I: Một số cổng vào ra của máy tính
I Cổng nối tiếp
1 Giao diện cổng Com và cách thức truyền nhận
2 Phơng thức truyền nhận thông qua cổng nối tiếp
3 Giao diện cổng nối tiếp
II Cổng song song
1 Phân tích chức năng của cổng song song
2 Các thanh ghi địa chỉ của cổng song song
III Khe cắm mở rộng ISA
1 Giao diện Bus mở rộng
2 Khe cắm Bus 16 bit ISA
Chơng 2: Chức năng và hoạt động của Card vào ra đa năng
I.Vi mạch ghép nối 8255A
II Mạch phối ghép vào/ra song song lập trình đợc 8255A
Chơng 3: Mục đích và hớng giải quyết của đề tài
I Yêu cầu của đề tài
II Hớng giải quyết
I Giới thiệu chơng trình vẽ mạch in OrCAD.
II Giới thiệu ngôn ngữ lập trình Visual Basic
Chơng 3: Thiết kế mạch quang báo sử dụng Card vào ra đa năng.
2
Trang 3I Thiết kế ma trận LED hiển thị.
II Thiết kế mạch quét.
Tài liệu tham khảo
Lời nói đầu
Sự phát triển đi lên vợt bậc của ngành kỹ thuật máy tính và điện tử hiện nay đã đợc minh chứng cụ thể qua cuộc sống hằng ngày của chúng ta trong tất cả các lĩnh
vực.Việc ứng dụng máy vi tính vào kỹ thuật đo lờng và điều khiển đã đem lại những kết quả đầy tính u việt Các thiết bị, hệ thống đo lờng và điều khiển ghép nối với máy tính có độ chính xác cao, thời gian thu thập số liệu ngắn, nhng đáng quan tâm hơn là mức độ tự động hoá trong việc thu nhận và xử lý dữ liệu
Kỹ thuật số ra đời đã khắc phục đợc các khuyết điểm của kỹ thuật tơng tự, làm cho các bộ phận máy móc trở nên đơn giản, gọn nhẹ, ít tốn kém năng lợng và xử lý thông tin nhanh, chính xác hơn so với kỹ thuật tơng tự
Tuy vậy, nếu sử dụng các bộ điều khiển dùng các IC số chúng vẫn còn mắc một số khuyết điểm mà so với kỹ thuật vi xử lý nó vẫn tồn tại nh:
- Kích thớc lớn
- Năng lợng tiêu thụ lớn
- Tính mềm dẻo thấp, khó thay đổi
- Khó sửa chữa, bảo trì
Kỹ thuật vi xử lý ra đời với sự kết hợp giữa phần cứng và phần mềm đã làm cho hoạt động của các mạch điện trở nên mềm dẻo hơn với những phần mềm rất linh hoạt
mà ta có thể sửa chữa, thay đổi hoặ4c bổ sung làm cho chơng trình điều khiển thêm phong phú tùy theo nhu cầu của ngời sử dụng Vi xử lý là một vi mạch điện tử có mật
độ tích hợp cao, trong đó gồm các mạch số có khả năng nhận, xử lý và xuất dữ liệu
Đặc biệt là quá trình xử lý dữ liệu đợc điều khiển theo một chơng trình gồm tập hợp các lệnh từ bên ngoài mà ngời sử dụng có thể thay đổi đợc một cách dễ dàng Một vi
xử lý có thể thực hiện rất nhiều yêu cầu điều khiển khác nhau
Kỹ thuật vi xử lý có tính phức tạp trong hoạt động, thiết kế nhng lại rất kinh tế vì giá thành hạ và kích thớc chiếm chỗ không nhiều, có dung lợng cao Ngoài ra kỹ thuật
vi xử lý cũng hơn kỹ thuật số về tính linh hoạt, tốc độ xử lý cao trong quá trình hoạt
động, đồng thời lại có thể mở rộng tính năng hoạt động sau này cho mạch điện Đây là
u điểm rất thuận lợi mà kỹ thuật vi xử lý mang lại
Nhận thấy đợc rõ tầm quan trọng và những u điểm của việc lập trình điều khiển thiết bị, các thầy giáo trong khoa Điện Điện tử tàu biển, các thầy giáo trong Bộ môn
Điện Tử Viễn Thông đã giao cho em đề tài " Thiết kế mạch quang báo sử dụng Slot
ISA" cho luận văn tốt nghiệp của em
Trong thời gian làm tốt nghiệp vừa qua, tuy em đã hết sức cố gắng tìm hiểu, học hỏi
về lĩnh vực mới này nhng do trình độ bản thân cũng nh thời gian làm tốt nghiệp còn hạn chế nên chắc chắn sẽ còn nhiều sai sót, kính mong các thầy giáo đóng góp ý kiến cho đề tài tốt nghiệp này của em
Trang 4Em xin chân thành cảm ơn Thầy giáo Hồ Nhật Tiến đã tận tình hớng dẫn để hoàn
thành báo cáo tốt nghiệp này Em cũng xin chân thành cảm ơn các thầy giáo trong khoa Điện Điện tử, các thầy giáo trong Bộ môn Điện Tử Viễn Thông, các bạn bè đồngnghiệp đã đóng góp ý kiến và chỉ dẫn em trong quá trình nghiên cứu, thực hiện đề tài này
Phần I : Các lý thuyết cơ sở
Ch ơng IMột số cổng vào ra của máy tính
I Cổng nối tiếp
1 Giao diện cổng COM và cách thức truyền nhận :
Thông thờng ở hầu hết ở các máy vi tính PC đều có hai cổng nối tiếp để giao tiếp với thiết bị ngoại vi với tên gọi là COM1, COM2 tùy theo kiểu chân cắm của hai cổng này là 9 chân hay 25 chân
Sơ đồ chân của cổng giao tiếp nối tiếp trên máy tính PC
DCD - Data Carrier DetectRxD - Receive DataTxD - Transmit DataDTR - Data terminal ReadyGND - Ground (nối đất)DSR - Data – Set – ReadyRTS - Request – to – SendCTS - Clear – to – Send
RI - Ring Indicator
Lối vàoLối vàoLối raLối raChungLối raLối raLối vào
Cổng COM loại 9 chân
5
16
9
Trang 5Việc truyền nhận dữ liệu thông qua hai chân :
TxD : Chân dùng để truyền dữ liệu
RxD: Chân dùng để nhận dữ liệu
Ngoài ra trên cổng nối tiếp còn có hai lối ra và bốn lối vào khác nữa đó là các chân dùng để kiểm tra tín hiệu trên đờng truyền, đợc gọi là những đờng dẫn bắt tay, đóng vai trò điều khiển dòng dữ liệu nối tiếp, các đờng dẫn này chỉ đợc sử dụng khi việc truyền nhận thông tin có thông qua Modem
2 Ph ơng thức truyền dữ liệu thông qua cổng nối tiếp :
a) Truyền thông tin nối tiếp :
Việc truyền thông tin giữa các bộ phận nằm gần nhau trong hệ thống vi xử lý có thểthực hiện thông qua bus song song mở rộng hoặc qua các mạch phối ghép song song Trong đó các byte hoặc word đợc truyền từ bộ phận này sang bộ phận khác trên một tập các đờng dây dẫn bằng mạch in hoặc dây cáp Trong trờng hợp ta cần truyền thôngtin giữa các thiết bị ở xa nhau, ta không thể dùng cả tập đờng dây nh trên mà phải có cách truyền khác để làm sao tiết kiệm đợc số đờng dây dẫn cần thiết cho việc truyền
Từ yêu cầu trên ra đời phơng pháp truyền thông tin nối tiếp : ở đầu phát, dữ liệu ở dạng song song đầu tiên đợc chuyển thành dữ liệu dạng nối tiếp, tín hiệu nối tiếp sau
đó đợc truyền đi liên tiếp từng bit trên một đờng dây ở đầu thu, tín hiệu nối tiếp sẽ
đ-ợc biến đổi ngđ-ợc lại để tái tạo tín hiệu dạng song song thích hợp cho việc xử lý tiếp theo
Trong thực tế có 2 phơng pháp truyền thông tin kiểu nối tiếp: truyền đồng bộ và truyền không đồng bộ (dị bộ)
b) Truyền đồng bộ :
Dữ liệu đợc truyền theo từng mảng (khối) với một tốc độ xác định Mảng dữ liệu
tr-ớc khi đợc truyền đi sẽ đợc gắn thêm ở đầu mảng và ở cuối mảng các byte (hoặc một nhóm bít) đánh dấu đặc biệt
c) Truyền không đồng bộ:
Dữ liệu đợc truyền đi theo từng kí tự Kí tự cần truyền đợc gắn thêm một bit dấu ở
đầu để báo bắt đầu kí tự (start) và một hoặc hai bit dấu ở cuối để báo kết thúc kí tự (stop) ở phơng pháp này mỗi kí tự đợc nhận dạng riêng biệt nên nó có thể đợc truyền
đi vào bất cứ lúc nào, tức là giữa các kí tự truyền đi có thể có các khoảng cách về thời gian
Dạng thức của dữ liệu truyền đi theo phơng pháp truyền nối tiếp không đồng bộ có dạng nh sau:
Trang 6Luôn ở mức cao
Chiều của dòng dữ liệu
Luôn ở mức cao
Start D0 D1 D2 D3 D4 D5 D6 D7 Parity Stop Stop
Mã ASCII của kí tự cần truyềnTùy theo loại mã (Baudot, ASCII,…) đ ợc chọn trong quá trình truyền thì ta sẽ có độ) đdài cho mã kí tự khác nhau có thể là 5, 6, 7, 8 bit (trong đồ án này mã của kí tự đợc qui định là mã ASCII) Với từng hệ thống truyền tin khác nhau thì bên cạnh các bit mãdữ liệu ta còn có thể tùy chọn có hoặc không có bit Parity để kiểm tra lỗi khi truyền hoặc ta có thể tùy chọn 1 hoặc 2 bít Stop, nhng trong mọi trờng hợp thì bắt buộc phải
có 1 bit Start
d) Tốc độ truyền trong việc truyền nối tiếp không đồng bộ :
Tốc độ truyền dữ liệu theo phơng pháp truyền nối tiếp đợc đo bit/s Hay có thể dùng
đơn vị là Baud, đó là giá trị nghịch đảo của thời gian giữa các lần thay đổi mức tín hiệu Với mức dữ liệu chỉ có hai mức (0 và 1) và mỗi lần thay đổi mức tín hiệu chỉ mã hóa một bit thì ta có 1Baud = 1 bit/s
Trong khi truyền nối tiếp thì tốc độ truyền nhận thờng phải nhận một trong những giá trị truyền tiêu chuẩn sau: 110 Baud, 130 Baud, 150 Baud, 300 Baud, 600 Baud,
1200 Baud, 2400 Baud, 4800 Baud, 9600 Baud, 19.200 Baud
3 Giao diện cổng nối tiếp :
Có nhiều loại giao diện nối tiếp khi truyền nhận thông tin qua cổng COM, tuy nhiênkhi bộ vi xử lí đặt ngay gần máy tính ta có thể sử dụng cổng nối tiếp RS-232 để ghép nối trực tiếp
Giao diện nối tiếp RS-232 hoặc có thể gọi là V.24 mô tả giao diện điện áp thuần túy Các mức Logich High hoặc Low đều là một mức điện áp từ +3V đến +15V hoặc -3V đến –15V so với đờng dẫn mass nối chung
u điểm của giao diện RS-232 là việc xử lí rất đơn giản (tìm lỗi rất nhanh) nên đợc
sử dụng rất rộng rãi và phổ biến do đó khả năng giao tiếp rất lớn, hầu hết ở các máy tính PC đều có cổng RS-232, vì vậy số thiết bị ngoại vi ghép nối với máy tính PC qua giao diện RS-232 cũng nhiều Về nhợc điểm của loại giao diện này phải kể đến
khoảng cách truyền rất bị hạn chế và tốc độ truyền cha cao Tuy nhiên trong việc thiết
kế mạch ngoại vi cho đề tài này để đơn giản về thiết kế cũng nh nhằm đạt đợc yêu cầu của đề tài, mạch giao tiếp qua cổng COM của đồ án sẽ sử dụng loại giao diện RS-
232 Khi cần mở rộng đề tài đòi hỏi khoảng cách truyền xa hơn, tốc độ truyền nhanh hơn chẳng hạn chúng ta sẽ phải sử dụng loại giao diện tiên tiến khác nh RS-422, RS-485
Bảng thông số về tính năng kĩ thuật cuả giao diện RS-232 / V 24 :
Loại giao diện Giao diện điện áp không đối xứng
6
Trang 7Bộ đệm cực đại 1
Độ dài đờng truyền cực đại 15 mét
Tốc độ truyền cực đại 20 KBaud đến 100 Kbaud
Điện áp lối ra của bộ đệm:
- Không tải:
- Có tải :
-15V , +15V-5V , +5V
Điện trở lối ra của bộ đệm 3 K đến 7 K
Điện trở lối vào của bộ nhận 3 K đến 7 K
Độ nhạy của bộ nhận -3V hoặc +3V
Sơ đồ khối biểu diễn việc truyền nhận thông tin bằng cách thức
nối tiếp (không có Modem )
Các tín hiệu nh : DTR, DSR, RTS, CTS để sử dụng khi truyền thông qua Modem, khi truyền với những khoảng cách gần không sử dụng Modem thì các chân tín hiệu không dùng đến, nên chúng ta phải nối chúng lại với nhau để đảm bảo việc truyền nhận luôn đúng và để đảm bảo có sự đa lệnh DTR, RTS để đọc trạng thái DSR và đảmbảo chân CTS xuống thấp (khi truyền / nhận) và trở về cao (khi kết thúc truyền nhận)
TxD RxD DTR DSR RTS CTS
Trang 8M C 1489
MC 1488
C P
U
TxD RxD
USART
RxD TxD
DTE
Đầu cáp RS-232C
Dây đất Cáp RS-232 Dây đất
Sơ đồ phối ghép USART qua đầu cáp chuẩn RS-232C :
Trong đó các thiết bị đợc định nghĩa nh sau:
CPU : Là bộ xử lí dữ liệu truyền nhận
USART : Bộ thu phát nối tiếp
TxD : Chân truyền của dữ liệu thu
RxD : Chân truyền của dữ liệu phát
DTE : Thiết bị đầu cuối có dữ liệu cần thu phát
MC 1488 và MC1489 : Là những mạch chuyển đổi điện áp
II Cổng song song
1 Phân tích các chức năng của cổng song song :
Sự sắp xếp các chân ra ở cổng máy in với tất cả các đờng dẫn đợc mô tả dới hình sau :
Chân Ký hiệu Vào/Ra Mô tả
1 STB Output Bit 0 của thanh ghi điều khiển
2 D0 Output Đờng dữ liệu D0
3 D1 Output Đờng dữ liệu D1
4 D2 Output Đờng dữ liệu D2
8
Trang 9D7 D6D5D4D3D2D1D0
D0 (pin 2)
D1 (pin 3)
D2 (pin 4)
D3 (pin 5)
D4 (pin 6)
D5 (pin 7)
D6 (pin 8)
5 D3 Output Đờng dữ liệu D3 6 D4 Output Đờng dữ liệu D4 7 D5 Output Đờng dữ liệu D5 8 D6 Output Đờng dữ liệu D6 9 D7 Output Đờng dữ liệu D7 10 ACK Input Bit 6 của thanh ghi trạng thái 11 BUSY Input Bit 7 của thanh ghi trạng thái 12 PE Input Bit 5 của thanh ghi trạng thái 13 SLCT Input Bit 4 của thang ghi trạng thái 14 AF Output Bit 1 của thanh ghi điều khiển 15 ERROR Input Bit 3 của thanh ghi trạng thái 16 INIT Output Bit 2 của thanh ghi điều khiển 17 SLCTIN Output Bit 3 của thanh ghi điều khiển 18 GND 19 GND 20 GND 21 GND 22 GND 23 GND 24 GND 25 GND Ta thấy bên cạnh 8 bit dữ liệu còn có những đờng dẫn tín hiệu khác, tổng cộng ngời sử dụng có thể trao đổi một cách riêng biệt với 17 đờng dẫn, bao gồm 12 đờng dẫn ra và 5 đờng dẫn vào Bởi vì 8 đờng dẫn dữ liệu D0 - D7 không phải là đờng dẫn 2 chiều trong tất cả các loại máy tính, nên ta sẽ sử dụng D0 - D7 nh là lối ra Các lối ra khác nữa là STB, AF, INIT và SLCTIN Các đờng dẫn lối vào là: ERROR, SLCT, PE, ACK, BUSY 2 Các thanh ghi địa chỉ của cổng song song : Tất cả các đờng dẫn tín hiệu vừa đợc giới thiệu cho phép trao đổi qua các địa chỉ bộ nhớ của máy tính PC 17 đờng dẫn của cổng máy in sắp xếp thành 3 thanh ghi: thanh ghi data, thanh ghi trạng thái, thanh ghi điều khiển Các hình dới đây chỉ ra sự sắp xếp của các đờng dẫn tín hiệu tới các bit dữ liệu riêng biệt của thanh ghi Thanh ghi data (Địa chỉ cơ bản)
9
Trang 10STB (pin 1)
AF (pin 14)
INIT (pin 16)
SLCTIN (pin 17)
IRQ-Enable D7 D6D5D4D3D2D1D0 ERROR (pin 15)
SLCT (pin 13)
PE (pin 12)
ACK (pin 10) BUSY (pin 11)
D7 D6D5D4D3D2D1D0 D0 (pin 2)
D1 (pin 3)
D2 (pin 4)
D3 (pin 5)
D4 (pin 6)
D5 (pin 7)
D6 (pin 8)
D7 (pin 9) Thanh ghi trạng thái (Địa chỉ cơ bản + 1)
Thanh ghi điều khiển (Địa chỉ cơ bản + 2)
Địa chỉ đầu tiên đạt đến đợc của cổng máy in đợc xem nh là địa in cơ bản ở các máy tính PC địa chỉ cơ bản của cổng máy in đợc sắp xếp nh sau:
LPT1 (Cổng máy in thứ nhất) => Địa chỉ cơ bản = 378H
Hoặc là 3BCH ở máy Laptop LPT2 (Cổng máy in thứ hai) => Địa chỉ cơ bản = 278H
Địa chỉ cơ bản đồng nhất với thanh ghi dữ liệu Thanh ghi trạng thái có địa chỉ = địa chỉ cơ bản + 1 Cần chú ý rằng mức logic của BUSY (chân 11) đợc sắp xếp ngợc với bit D7 của thanh ghi trạng thái Thanh ghi điều khiển với 4 đờng dẫn lối ra của nó có
địa chỉ = địa chỉ cơ bản + 2 ở đây lại cần chú ý tới sự đảo ngợc của các tín hiệu: STB,
AF, SLCTIN
III khe cắm mở rộng isa:
1 Giao diện BUS mở rộng :
Bus là những tổ hợp dây dẫn đợc dùng để truyền thông tin trong máy tính Những thông tin này bao gồm : địa chỉ, mã lệnh và tín hiệu điều khiển Bộ vi xử lý có một hệ
10
Trang 11/ IOCHCK SD7 SD6 SD5 SD4 SD3 SD2 DS1 SD0 / IOCHRDY AEN SA19 SA18 SA17 SA16 SA15 SA14 SA13 SA12 SA11 SA10 SA9 SA8 SA7 SA6 SA5 SA4 SA3 SA2 SA1 SA0
A20
A1 0 A1
B20
B10
B1 Ground
thống bus bên ngoài để kết nối với bộ nhớ chính Ta gọi là bus vi xử lý
(microprocessor bus ) hay bus cục bộ (local bus)
Hệ thống khác trong máy tính là bus vào/ra hay bus mở rộng đợc dùng để truyền dữliệu giữa bộ vi xử lý/ bộ nhớ chính và các thẻ cắm ngoại vi Trong khi bus cục bộ ngàycàng nhanh thì tốc độ phát triển của bus mở rộng vẫn không tăng đáng kể
BUS ISA ( Industry Standard Associaton) 16 bit đợc dành cho cấu trúc máy tính cá nhân thế hệ 16 bit Tốc độ truyền của bus ISA là 8 Mbyte/s
2 Khe cắm bus 16 bit ISA :
Bus ISA (Industry Standard Association) là một cấu trúc bus thành công nhất, bus xuất hiện từ thế hệ máy PC/AT của IBM nên còn đợc gọi là Bus AT (đúng ra ISA là một chuẩn ra đời sau và dựa trên cơ sở của Bus AT) Bus ISA là một bus 16 bit làm việc tại tần số 8 MHz Nh vậy bus ISA có thể truyền thông tin giữa bộ vi xử lý và các thiết bị ngoại vi với tốc độ 8 MB trong một giây Trong thực tế thì tốc độ này nằm giữa
4 MB và 8MB trong một giây Bus ISA thành công và nổi tiếng là do nhiều thiết bị ngoại vi và ứng dụng đợc thiết kế và bán ra thị trờng đều dùng bản mạch cắm ISA ISA thích hợp với môi trờng DOS không nối mạng hoặc nối mạng với tốc độ truyền vừa phải
Rãnh cắm theo chuẩn ISA :
Thông thờng rãnh cắm có 62 đờng tín hiệu dùng cho mục đích thông tin với một card cắm vào Về cơ bản các đờng tín hiệu này đợc chia thành các đờng dẫn tín hiệu,
đờng địa chỉ và đờng dẫn điều khiển Bởi vì ngay từ các máy PC/XT đã sẵn có các rãnh cắm 62 chân này, trên đó có 8 đờng dẫn dữ liệu, nên đôi khi ngời ta cũng gọi luôn rãnh cắm 62 chân này là rãnh cắm 8 bit Chỉ có những card 8 bit mới đợc cắm rãnh này Sơ đồ dới đây chỉ ra sự sắp xếp chân ra của rãnh cắm mở rộng 8 bit
Trang 12C10
D18D10
-SBHE LA23 LA22 LA21 LA20 LA19 LA18 LA17 MEMR -MEMW SD08 SD09 SD10 SD11 SD12 SD13 SD14 SD15
Trên rãnh này có chứa các tín hiệu 16 bit Nên khi có thêm rãnh cắm này thì ngời
ta gọi chung cả hai rãnh cắm là rãnh cắm 16 bit Các rãnh cắm từ 32 bit trở lên dùng
để ghép thêm vào những card có chất lợng rất cao
Rãnh cắm 16 bit bao gồm rãnh cắm 8 bit và có thêm một rãnh cắm thứ hai:
Khe cắm ISA có 98 đầu nối
Kích thớc lớn nhất của các card ISA 8 bit là :
- Chiều cao 106,7mm (4,2 inch)
- Chiều dài 333,5 mm (13,13 inch)
- Chiều dày, kể cả linh kiện 12,7 mm (0,5 inch)
Kích thớc lớn nhất của card ISA 16 bit là :
- Chiều cao 121,92mm (4,8 inch)
- Chiều dài 333,5 mm (13,13 inhc)
- Chiều dày, kể cả linh kiện 12,7 mm (0,5 inch)
Sự khác nhau giữa hai kích thớc này chỉ ở chiều cao mà nguyên nhân là do vỏ máy của máy tính AT đợc thiết kế cao hơn loại XT một chút
Từ cách sắp xếp chân ra, rõ ràng là 62 đờng tín hiệu nằm cả ở mặt hàn thiếc cũng nh mặt sắp đặt linh kiện Do đó các bản mạch (card) cắmthêm vào bao giờ cũng là những card in hai mặt Bên cạnh 8 đờng dẫn dữ liệu trên card còn có 20 đờng dẫn địa chỉ từ A0 đến A19
12
Trang 13Tín hiệu Hớng Mô tả
Reset Lối ra Sau khi bật máy tính hoặc sau khi ngắt điện, đờng dẫn Resetsẽ kích hoạt trong thời gian ngắn để đa card đã đợc cắm vào
đến một trạng thái ban đầu xác định
/ IOW Lối ra
Input / Output / WriteTín hiệu này sẽ kích hoạt khi truy nhập ghi lên một card mởrộng Mức thấp chỉ ra rằng các dữ liệu có gía trị đang chờ để
đa ra ở bus dữ liệu Các dữ liệu đợc đón nhận bằng sờn trớc
/ IOR Lối ra
Input / Output / ReadMức thấp của đờng dẫn địa chỉ này báo hiệu sự truy nhập
đọc trên một card mở rộng Trong thời gian này các dữ liệu
có giá trị cần phải sắp xếp để rồi sau đó đợc đón nhận bằngsờn trớc
Address Enable
Đờng dẫn điều khiển AEN dùng để phân biệt chu trình truynhập DMA và chu trình truy nhập bộ vi xử lý ở mức cao(High) DMA giám sát qua bus địa chỉ và bus dữ liệu; đờngdẫn có hiệu lực ở mức thấp (Low) Đờng dẫn này cần phải đ-
ợc xử dụng cho qua trình giải mã địa chỉ bởi card mở rộng.Phần mở rộng chứa các tín hiệu yêu cầu ngắt IRQ, tín hiệu yêu cầu truy nhập trực tiếp bộ nhớ DRQ, các tín hiệu dữ liệu và tín hiệu bổ xung ý nghĩa cụ thể từng tín hiệu
nh sau :
/OWS (B8) : tín hiệu từ thẻ ngoại vi, báo thẻ chạy đủ nhanh và không cần đến chu
kỳ đợi
/DACKn (D8, D10, D12, D14) : Tín hiệu từ trên thẻ cắm yêu cầu đợc truy nhập
bộ nhớ trực tiếp DACK 0 của PC /XT đợc thay thế bằng tín hiệu /REFR
/DRQn (D9, D11, D13, D15) : Tín hiệu từ trên thẻ cắm yêu cầu đợc truy nhập bộ nhớ trực tiếp Những tín hiệu này đợc nối về DMAC
/I/O CS16 (D2) : Tín hiệu một thiết bị ngoại vi báo về vi xử lý khi nó muốn dùng một bus 16 bit để truy nhập một cổng cứng
IRQn : Yêu cầu ngắt đến từ thiết bị ngoại vi, những tín hiệu này đợc nối về bộ
điểu khiển ngắt PIC
A0 – A19, LA20 – LA23 : Chân nối với bus địa chỉ 24 bit
D0 – D7, SD08 – SD15 : Chân nối với bus địa chỉ 16 bit
/MASTER (17) : Tín hiệu này đợc phép trên một thiết bị ngoại vi trên thẻ cắm dành quyền làm chủ bus Thiết bị ngoại vi báo yêu cầu truy nhập bộ nhớ về DMAC, DMAC treo vi xử lý ra khỏi bus Sau đó DMAC báo chấp nhận quyền làm chủ bus củathiết bị ngoại vi qua tín hiệu /DACK Thiết bị ngoại vi sau đó sẽ báo vai trò chủ bus về
hệ thống bằng tín hiệu /MASTER
/MEM CS16 (D1) : Tín hiệu thiết bị ngoại vi báo về xử lý khi nó muốn dùng bus
16 để truy nhập bộ nhớ
/MEMR (C9) : Tín hiệu đọc bộ nhớ của vi xử lý hay DMA
/MEMW (C10) : Tín hiệu ghi bộ nhớ của vi xử lý hay DMA
/REF (B19) : Tín hiệu báo bộ nhớ trên bản mạch chính đang đợc làm tơi Dùng tín hiệu này, thẻ cắm có thể làm tơi bộ nhớ của riêng nó đồng bộ với bộ nhớ hệ thống
Trang 141 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
PA4 PA5 PA6 PA7 /WR Reset D0 D1 D2 D3 D4 D5 D6 D7 +5V PB7 PB6 PB5 PB4 PB3
PA3 PA2 PA1 PA0 /RD /CS GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2
Sơ đồ bố trí chân của vi mạch ghép nối 8255A
/SBHE (C ): Tín hiệu này ở trạng thái tích cực khi 8 bit cao của bus dữ liệu đợc dùng đến
/SMEMR (B12) : Tín hiệu này ở trạng thái tích cực khi vùng bộ nhớ giữa 0 và 1 Mbyte đợc đọc
/SMEMW (B11) : Tơng tự nh /SMEMR khi bộ nhớ đợc ghi
Ch ơng ii Chức năng và hoạt động của card vào ra đa năng
I Vi mạch ghép nối 8255A
Khối ghép nối 8255 thờng đợc hay sử dụng trên tấm Card cắm thêm vào máy tính
PC trong việc thu nhập dữ liệu đo lờng để xuất và nhập dữ liệu số, trong việc điều khiển quá trình biến đổi A/D Vi mạch 40 chân này có cách bố trí nh hình vẽ ở dới trong đó chứa 24 đờng dẫn lối vào/ ra đợc xếp thành ba cổng song song (cổng A, cổng
B, cổng C )
14
Trang 15Tính linh hoạt của vi mạch này thể hiện ở khả năng lập trình Qua một thanh ghi
điều khiển, ngời sử dụng xác định loại hoạt động và cổng nào đợc sử dụng nh là lối vào hoặc lối ra Các chân ra D0-D7 tạo nên bus dữ liệu 2 hớng, rộng 8 bit Tất cả các dữ liệu khi truy nhập ghi hoặc là đọc đợc đờng dẫn qua các đờng dẫn này Trạng thái logic ghi/đọc đợc nhận biết qua các tín hiệu điều khiển /CS, /RD, /WR Một cuộc trao
đổi thông tin với vi mạch 8255A sau đó có thể đợc tiến hành khi /CS=0 Khi /RD=0, sau đó các tín hiệu của cổng đợc lựa chọn đợc dẫn đến bus dữ liệu và có thể đợc gọi bởi các vi mạch khác Khi /WR=0, thì mọi việc xảy ra ngợc lại Các bit địa chỉ A0 và A1 cùng với các tín hiệu ghi và đọc báo hiệu cho biết sẽ truy nhập lên cổng nào Bảng chân lý dới đây tóm tắt các kết luận vừa mới đợc trình bày ở trên
X X X X 1 Đờng dẫn dữ liệu ở trạng thái điện trở cao (tristate)
X X 1 1 0 Đờng dẫn dữ liệu ở trạng thái điện trở cao (tristate)
Tử bảng này rõ ràng là thanh ghi điều khiển đặt dới địa chỉ bên trong A0 = 0, A1
=1 Trong một chu trình ghi lên thanh ghi điều khiển, ngời sử dụng khẳng định cổng vào/ra cũng nh kiểu hoạt động trong một từ điều khiển Một mức High ở đờng dẫn Reset đặt trở lại thanh ghi điều khiển và định nghĩa toàn bộ 24 đờng dẫn nh là các lối vào Sự sắp xếp của từ điều khiển đợc mô tả trên trên hình ở dới
Từ đây ta có thể thấy rõ ràng là 24 đờng dẫn của các cổng A, B và C đợc phân chia thành 2 nhóm Trong đó một nửa của cổng C ( PC4 PC7 ) thuộc vào nhóm A, cònnửa kia thuộc nhóm B Tổng cộng, ngời sử dụng có ba kiểu hoạt động khác nhau Kiểu(mode) 0, kiểu 1 và kiểu 2 Dới đây sẽ chỉ có kiểu 0 đợc mô tả Loại hoạt động này giới thiệu một khả năng xuất và nhập dữ liệu theo cách đơn giản qua 3 cổng A, B và C
Đối với loại hoạt động theo kiểu 0, từ điều khiển có thể tính theo cách sau:
Trang 16Controlword ( Tõ ®iÒu khiÓn )
Mode - Flag 1= Active
Sù s¾p xÕp cña tõ ®iÒu khiÓn ë vi m¹ch 8255
Tõ ®iÒu khiÓn ( Controlword ) = 128 + 16 + 0 + 0 + 0 =144
VÝdô 2 : KiÓu 0, cæng A nh lµ lèi ra, cæng C ( bit 4 7 ) nh lµ lèi vµo, cæng B
nh lµ lèi vµo vµ cæng C ( bit 0 3) nh lµ lèi ra
Tõ ®iÒu khiÓn ( Controlword ) = 128 + 0 + 8 + 2 + 0 =138
16
Trang 17Nhóm ACổng A
Nhóm ACổng C( cao )
Nhóm BCổng C( thấp )
Nhóm BCổng B
PA0-PA7
PC0-PC3PC4-PC7
PB0-PB7
Điều khiển nhóm A
Điều khiển nhóm B
Đệm BUS DD0-D7
II- Mạch phối ghép vào/ra song song lập trình đ ợc 8255A :
Mạch 8255A thờng đợc gọi là mạch phối ghép vào/ra lập trình đợc (programmable peripheral interface, PPI) Do khả năng mềm dẻo trong các ứng dụng thực tế nó là mạch phối ghép đợc dùng rất phổ biến cho các hệ vi xử lý 8-16 bit
Sơ đồ khối mô tả chức năng bên trong của 8255A :
Các chân tín hiệu của 8255A có ý nghĩa rõ ràng Chân Reset phải đợc nối với tín hiệu Reset chung của toàn hệ thống (khi reset thì các cổng đợc định nghĩa là cổng vào
để không gây sự cố cho các mạch điều khiển) CS đợc nối với mạch tạo xung chọn thiết bị để đặt mạch 8255A vào một địa chỉ cơ sở nào đó Các tín hiệu địa chỉ A0, A1
sẽ chọn ra 4 thanh ghi bên trong 8255A : 1 thanh ghi để ghi từ điều khiển cho hoạt
động của 8255A (Viết tắt là CWR , control word register) và 3 thanh ghi khác ứng với các cổng (port) là PA, PB, PC để ghi/đọc dữ liệu :
Trang 18Cấu hình
1MA1MA0ACAMBBCB
Nhóm B PC
L (thấp )
1:1 0:0
PB :
1:1 0:0
Chọn chế độ :
0: Mode 01: Mode 1
Theo bảng trên ta nhận thấy địa chỉ cho PA cũng chính là địa chỉ cơ sở của 8255A
Có 2 loại từ điều khiển cho 8255A :
+ Từ điều khiển định nghĩa cấu hình cho các cổng PA, PB, PC
+ Từ điều khiển lập/xóa từng bit ở đầu ra của PC
* Từ điều khiển định nghĩa cấu hình
Dạng thức của từ điều khiển để định cấu hình đợc thể hiện dới hình sau:
* Từ điều khiển lập/xoá bit ra PCi
Dạng thức của từ điều khiển để lập/xoá PCi đợc thể hiện trên hình 5.36
Lập/xoá
Từ điều khiển để lập/ xoá PCi của 8255A
Nh ta thấy ở trên, các chế độ (mode) làm việc của mạch cổng 8255A có thể đợc
định nghĩa bằng từ điều khiển CWR Cụ thể 8255A có 4 chế độ làm việc:
+ Chế độ 0: "Vào/ra cơ sở" (còn gọi là "vào ra đơn giản") Trong chế độ này mỗi
cổng PA, PB, PCH và PCL đều có thể đợc định nghĩa là các cổng vào hoặc ra
+ Chế độ 1: "Vào/ra có xung cho phép" Trong chế độ này mỗi cổng PA, PB có
thể đợc định nghĩa thành cổng vào hoặc cổng ra với các tín hiệu móc nối
(handshaking) do các bit tơng ứng của cổng PC trong cùng nhóm đảm nhiệm
+ Chế độ 2: "Vào ra 2 chiều" Trong chế độ này chỉ riêng cổng PA có thể đợc
định nghĩa thành cổng vào/ra 2 chiều với các tín hiệu móc nối do các bit của cổng PC
đảm nhiệm Cổng PB có thể làm việc trong chế độ 0 hoặc 1
18
Mã hoá PCi000:PC
Trang 19OBFAACKA
INTRA
PC1PC2PC0
OBFBACKB
PC4PC5PC
PC2PC1PC
+ Lập/xoá các bit PCi: chế độ này có thể thấy rõ trên hình biểu diễn từ điều khiển
lập/xoá PC của 8255A
Sau đây ta sẽ giới thiệu cụ thể các chế độ làm việc 0,1 và 2 của 8255A:
Chế độ 0: "Vào/ra cơ sở"
Trong chế độ này, bốn cổng PA, PB, PCH và PCL đều có thể đợc định nghĩa là cổng
vào hoặc cổng ra Nh vậy, với tổ hợp tất cả các khả năng vào/ra cho 4 cổng đó ta có
đ-ợc 16 cấu hình khác nhau
Chế độ 1: "Vào/ra có xung cho phép"
c) Tín hiệu trạng thái ra d) Tín hiệu trạng thái vào
Mạch 8255A ở chế độ 1 và các tín hiệu trạng thái.
Để đơn giản ta coi PA và PB cùng đợc định nghĩa là cổng ra hoặc cổng vào
Ra dữ liệu trong chế độ 1
ở đây PA và PB cùng đợc định nghĩa là cổng ra và có các tín hiệu móc nối tơng
đ-ơng nhau cho việc trao đổi dữ liệu Ta chỉ cần giới thiệu ở đây các tín hiệu cho PA, cáctín hiệu cho PB cũng tơng tự :
+ OBFA (Đệm ra của PA đầy) Tín hiệu báo cho thiết bị ngoại vi biết CPU đã ghi
dữ liệu vào cổng để chuẩn bị đa ra Tín hiệu này thờng đợc nối với STB của thiết bị
nhận
+ ACKA (Trả lời đã nhận đợc dữ liệu) Đây là tín hiệu của thiết bị ngoại vi cho biết
là nó đã nhận đợc dữ liệu từ PA của 8255A
Trang 20ảnh yêu cầu ngắt của PA tới CPU
+ INTEA là tín hiệu của một mạch lật bên trong 8255A để cho phép/cấm yêu cầu ngắt INTRA của PA INTEA đợc lập/xoá thông qua bit PC6 của PC
Các tín hiệu đối thoại - trạng thái kể trên đều có thể lấy trực tiếp đợc từ các chân
t-ơng ứng của vi mạch hoặc đợc đọc vào CPU thông qua việc đọc cổng PC
ở đây PA và PB đợc định nghĩa là cổng vào và có các tín hiệu móc nối tơng đơng nhau cho việc trao đổi dữ liệu Ta chỉ cần giới thiệu ở đây các tín hiệu cho PA, các tín hiệu cho PB cũng tơng tự
+ STB (Cho phép chốt dữ liệu): Khi dữ liệu đã sẵn sàng để đợc đọc vào bằng PA thiết bị ngoại vi phải dùng STB để báo cho 8255A biết mà chốt dữ liệu
+ IBF (Đệm vào dầy): Sau khi 8255A chốt đợc dữ liệu do thiết bị ngoại vi đa đến,
nó đa ra tín hiệu IBF để báo cho thiết bị ngoại vi biết là đã chốt xong
+ INTRA (Yêu cầu ngắt từ cổng PA): Tín hiệu để báo cho CPU biết là đã có dữ liệusẵn để đọc từ PA Đây là kết quả thu đợc từ quan hệ giữa các tín hiệu khác của 8255A trong quá trình đối thoại với thiết bị ngoại vi
+ INTEA là tín hiệu của mạch lật bên trong 8255A để cho phép/cấm yêu cầu ngắt INTRA của PA.INTEA đợc lập/xoá thông qua bit PC4 của PC
Một số trong các tín hiệu đối thoại trạng thái kể trên đều có thể lấy đợc trực tiếp từ các chân tơng ứng của vi mạch hoặc có thể đợc đọc vào CPU thông qua việc đọc PCCác tín hiệu đối thoại - trạng thái có thể đợc sử dụng làm tín hiệu móc nối cho các kiểu vào/ra dữ liệu bằng cách ngắt CPU hay bằng cách thăm dò trạng thái sẵn sàng của thiết bị ngoại vi
Trang 21Biểu đồ thời gian các tín hiệu của 8255A ở chế độ 1 - vào.
Chế độ 2: "Bus 2 chiều"
Trong chế độ này chỉ riêng cổng PA đợc định nghĩa để làm việc nh một cổng 2 chiều có các tín hiệu móc nối do một số bit của PC đảm nhiệm, còn PC thì có thể làm việc ở chế độ 1 hoặc 0 tuỳ theo các bit điều khiển trong CWR Các chân tín hiệu còn lại của PC có thể đợc định nghĩa để làm việc nh các chân vào hoặc ra, hoặc phục vụ cho cổng PB
PB: Chế độ 0, vào PB: chế độ 1, ra
Trang 228255A ở chế độ "Bus hai chiều".
Một số tín hiệu móc nối đặc biệt cần giới thiệu của PA gồm:
+ INTRA : Yêu cầu ngắn cho dữ liệu theo hai chiều vào và ra
+ INTE1 và INTE2 là 2 tín hiệu của 2 mạch lật bên trong 8255A để cho phép/cấm
yêu cầu ngắt của cổng PA Các bit này đợc lập/xoá bởi các bit PC6 và PC4 của cổng
PC
Biểu đồ thời gian của các tín hiệu móc nối của 8255A đợc biểu hiện trên hình sau:
22
Trang 23Biểu đồ thời gian các tín hiệu của 8255A ở chế độ 2
Một số trong các tín hiệu đối thoại - trạng thái kể trên đều có thể lấy đợc trực tiếp từcác chân tơng ứng của vi mạch hoặc có thể đọc đợc vào CPU từ cổng PC và cho phép
điều khiển việc trao đổi dữ liệu bằng cách thăm dò các tín hiệu này
Khi dùng 8255A trong chế độ bus 2 chiều để trao đổi dữ liệu theo cách thăm dò ta phải kiểm tra xem bit OBFA có bằng 1 (đệm ra rỗng) hay không trớc khi dùng lệnh OUT để đa dữ liệu ra cổng PA, hoặc kiểm tra xem bit IBFA có bằng 0 (đệm vào rỗng) hay không trớc khi dùng lệnh IN để đọc dữ liệu vào từ cổng PA
III - Lập trình với 8255a :
1 Th viện liên kết động DLL
Chúng ta có thể thấy rằng các hàm inportb và outportb trong Visual C++ là các hàmkhông thực hiện đợc trong Visual Basic, nhng các hàm này lại có ý nghĩa quyết định khi ta muốn viết các chơng trình thích ứng phần cứng của máy tính PC vì chúng có thểcho phép ta có thể đọc và viết vào các cổng Nh vậy nếu không có các lệnh INPUT và OUPUT ta không thể đọc hoặc ghi vào phần cứng cần ghép nối của ta
Để có thể vợt qua trở ngại này ta sử dụng các th viện DLL Có thể thấy từ tên gọi, các DLL cho phép Visual Basic liên kết (một bớc trớc khi tiến hành biên dịch) mã (các th viện này ta lập bằng ngôn ngữ Visual C++) trong suốt thời gian chạy (nghĩa là
động) Visual C++ có cổng I/O (nhập vào và xuất ra) có các hàm đọc/ghi Đồng thời chơng trình dịch của Visual C++ cho phép ta tạo ra các th viện DLL (ngoài các tệp tin chấp hành loại *.EXE ) Nh vậy ta sẽ:
1 Viết mã Visual C++ để dùng các mã này là các hàm đọc / ghi
2 Biên dịch nó vào trong một tệp tin DLL (thay vì một tệp tin loại chấp hành
*.EXE )
3 Gọi các hàm đó từ Visual Basic
2 Viết một th viện DLL riêng :
Để viết các th viện DLL riêng thì trớc hết có hai tệp cần phải tạo ra, cụ thể là:
- Tệp DEF hay còn gọi là tệp định nghĩa ( defmition )
- Tệp CPP ( Tệp nguồn C ++ )
Cả hai tệp đều là các tệp văn bản với mã ASCII đơn giản Ta có thể sử dụng bất kỳ
bộ soạn thảo nào (ví dụ soạn thảo bằng edit trên hệ điều hành DOS, hoặc bằng
Notepad trên Windows) Tệp ISADLL.DEF đợc viết nh sau :
LIBRARY ISA
-DESCRIPTION DLL FOR ISA CARD
EXPORTS
OUTISA @1
INISA @2
Tên của th viện liên kết động DLL đợc viết cho trên dòng đầu tiên, cụ thể là
-ISADLL, để chỉ rõ th viện này đợc dùng cho các ứng dụng ghép nối với vi mạch ISA
Trang 24Dòng thứ hai là một chú giải Sau đó là tên của các hàm sẽ đợc định nghĩa trong Visual C++ Các hàm này là : OUTISA và INISA Nếu nh còn muốn thêm các hàm khác thì số tiếp theo sẽ là
// Need Dummy since _outp officially returns int
// short is a 16-bit integer in Win32 C++
// whereas int is 32-bit integer Win32 C++
// use (short) to force returning 16-bit integer back to Visual Basic
// short is a 16-bit integer in Win32 C++
// whereas int is 32-bit integer Win32 C++
// use (short) to force returning 16-bit integer back to Visual Basic
PortData=(short)(_inp(PortAddress));
return(PortData);
}; // End of INISA
Tệp ISADLL.cpp sẽ định nghĩa các hàm INISA và OUTISA Nó sử dụng các hàm _inp() và _out() trong Visual C++ Dấu gạch chân đơn trớc inp và outp là cần thiết, để chỉ đến các hàm đợc định nghĩa trong các phiên bản cũ hơn của Visual C++
-Sau khi tạo xong hai tệp ISADLL.DEF và ISADLL.CPP, ta sử dụng ngôn ngữ Visual C++ 6.0 để xây dựng tệp ISADLL.DLL Sau đó ta copy tệp ISADLL.DLL này vào th mục Windows
3 Sử dụng DLL trong các ch ơng trình VISUAL BASIC :
Để sử dụng các hàm DLL đợc viết ra, hay còn gọi là DLL riêng (private), ta thêm vào các dòng sau trong đoạn khai báo của chơng trình Visual Basic Các dòng khai báo phải đứng sau chỉ thị Option Explicit Chú ý rằlà : đờng gạch chân trong Visual Basic có nghĩa rằng chỉ thị đó có thể kéo dài nhiều dòng
Public Declare Function Outisa Lib "c:\windows\ISADLL.DLL" _
-24
Trang 25(ByVal portaddress As Integer, ByVal portdata As Integer) As Integer
Public Declare Function Inisa Lib "c:\windows\ISADLL.DLL" _
(ByVal portaddress As Integer) As Integer
-Để viết ra cổng ta sử dụng lệnh OUTISA :
Dummy = outisa(Cntrl, 128)
ở đây Dummy, Cntrl là các số nguyên Số thập phân có giá trị 128 đợc viết ra cổng
có địa chỉ là Cntrl Việc sử dụng kết hợp một biến số nguyên (ở đây ta gọi nó là biến
"Dummy" ) với hàm OUTISA là cần thiết Nguyên nhân là DLL đợc xây dựng bằng lệnh outp() của Visual C++, hàm này trả lại một số nguyên ( bằng 1 nếu nh câu lệnh
đúng và bằng 0 nếu nh câu lệnh sai)
Để đọc vào từ một cổng ta sử dụng INISA :
PortValue=insia(PortSelect)
ở đây PortValue và PortSelect là các số nguyên Số 8 bit ở cổng PortSelect sẽ đợc gán (dới dạng thập phân) cho biến PortValue
Ch ơng Iii Mục đích và hớng giải quyết của đề tài
I - Yêu cầu của đề tài :
Thiết kế, chế tạo thiết bị và viết chơng trình điều khiển mạch với các đặc điểm chính sau:
- Giao tiếp đợc với máy tính qua các cổng I/O
- Có khả năng thực hiện công việc theo lệnh đợc nhập từ máy tính
- Có khả năng quang báo theo yêu cầu của chơng trình
Bài toán đặt ra :
Trang 26Thiết kế đợc thiết bị ngoại vi quang báo theo yêu cầu có khả năng giao tiếp với máytính Với thiết bị nh vậy, viết chơng trình điều khiển việc giao tiếp giữa thiết bị ngoại
vi với máy tính (cổng I/O đợc lựa chọn trớc)
II - h ớng giải quyết :
1 Đánh giá các cổng I/O của máy tính :
Nh đã giới thiệu ở phần trên, chúng ta có thể rút ra một số nhận xét sau:
- Cổng I/O nối tiếp và cổng I/O song song: đòi hỏi thiết bị ngọai vi độc lập với
máy tính, nhng tốc độ truyền / nhận tín hiệu thì lại thấp Số lợng cổng ít, khả năng phát triển thiết bị là khó khăn Quan trọng hơn các cổng này thờng đợc sử dụng cho việc nối kết máy tính với máy in, chuột, modem và một số thiết bị ngoại vi khác Nếu
ta sử dụng hai loại cổng I/O này phục vụ cho đề tài này sẽ gặp những khó khăn nhất
định và thực sự có trờng hợp không vợt qua đợc
- Cổng I/O là các Bus mở rộng: đòi hỏi thiết bị ngoại vi phải nối kết với máy tính
thông qua các bản mạch cắm trên các khe Bus mở rộng đó, nh vậy thiết bị ngoại vi không hoạt động độc lập với máy tính Tuy nhiên với loại cổng này lại có những u
điểm đáng chú ý sau :
+ Số lợng các khe Bus mở rộng trên máy tính thờng đợc cung cấp nhiều, hơn nữa các khe Bus này lại không đợc sử dụng nhiều Trong các hệ thống máy tính để bàn thông thờng, bao giờ cũng thừa ra các khe ISA và PCI không sử dụng đến
+ Tốc độ truy xuất tín hiệu lớn hơn nhiều lần so với các cổng I/O nối tiếp và song song, điều khiển dễ dàng
+ Sử dụng tài nguyên chung của chính máy tính
Nh vậy việc chọn các khe Bus mở rộng làm giao diện nối kết với thiết bị ngoại vi hợp lý hơn việc chọn các cổng I/O nối tiếp và song song Nhng chọn loại khe Bus mở rộng nào để nối kết trong số những khe Bus mở rộng đã đợc giới thiệu ở trên? Giải quyết vấn đề này chúng ta cần xem xét kĩ đến các vấn đề sau :
- Các loại máy tính thế hệ từ 486 trở lại đây chỉ còn dùng những khe Bus mở rộng: AGP, PCI, ISA, EISA (trong đó khe AGP đã đợc dùng riêng cho việc sử dụng VGA Card )
- Các khe Bus đều có chung các loại tín hiệu : Data Bus, Address Bus, Control Bus, INTQ Cho nên cách điều khiển các loại khe Bus mở rộng tơng tự nhau
- Các loại Card cắm trên khe PCI đòi hỏi phải là thiết bị Plug and Play, yêu cầu về
sự tơng thích với các chơng trình phần mềm và các thiết bị phần cứng khác rất cao
đồng thời yêu cầu cấu hình máy tính cũng phải đạt một mức tốc độ tối thiểu
- Trong khuôn khổ yêu cầu của đề tài, việc nối kết thiết bị ngoại vi với máy tính không cần đến DMA hoặc Cache và máy tính với cấu hình cao
Với những lý do trên, em nhận thấy chọn khe ISA làm giao diện nối kết với thiết bị ngoại vi là phù hợp với yêu cầu cầu đề tài nói chung và lợng kiến thức của em nói riêng
2 H ớng thiết kế với khe Bus mở rộng ISA :
Sử dụng khe cắm mở rộng trên máy tính (khe ISA), thiết kế một IOCard cắm trên khe mở rộng, trên Card này sẻ đảm nhận việc truyền tín hiệu ra thiết bị ngoại vi, thiết
bị ngoại vi sẽ chỉ cần bộ giao tiếp và bộ đệm mà không cần phải là một bộ vi xử lý riêng
Chơng trình điều khiển sẽ đảm nhận việc tính toán tốc độ, giải mã, thiết lập giao diện nối kết, thông qua IOCard cắm trên khe ISA để truyền tín hiệu ra ngoài cho thiết
bị ngoại vi
Thiết bị quang báo có khả năng giao tiếp với IOCard, hiển thị theo yêu cầu của
ch-ơng trình điều khiển
26
Trang 27III- Ph ơng pháp thực hiện :
Với việc chọn khe ISA là giao diện nối kết thì đầu tiên cần phải chú ý đến việc thiết kế mạch giao tiếp IOCard và thiết bị quang báo - bảng đèn điện tử
Tiếp theo thiết kế chơng trình điều khiển theo nguyên tắc tín hiệu sẽ đa trực tiếp
đến khe ISA và thông qua IOCard tín hiệu đó đợc truyền ra bảng đèn điện tử
Mạch giao tiếp đợc xây dựng dựa trên nguyên lý giao tiếp song song qua cổng máy in Mạch sử dụng vi mạch giao tiếp PPI 8255A làm cơ sở chính Sử dụng các vi mạch số để khống chế quá trình giao tiếp và qua đó định vị chính xác các Port quy
định thực hiện việc trao đổi thông tin Dữ liệu cũng nh thông tin đợc trao đổi giữa mạch (thẻ mạch, card) ngoài và CPU của máy tính cá nhân (PC: Person Computer) gián tiếp tiến hành thông qua vi mạch PPI 8255A
Đề tài chỉ yêu cầu ở mức độ đơn giản, đó là trao đổi dữ liệu Để nâng cao tính đa năng của vi mạch 8255A, mạch giao tiếp đợc thiết kế ở mức độ đơn giản nhng tiện dụng Đơn giản ở chỗ chỉ sử dụng ít IC số kèm theo để khống chế tầm hoạt động của
vi mạch, mạch chỉ sử dụng bốn (04) IC và bốn (04) tụ lọc ngoài ra không sử dụng thêm bất cứ linh kiện thụ động nào khác.Với ba cặp chuyển mạch (jumper) có thể sử dụng tới 32 cổng giao tiếp Ngoài ra mạch còn thiết kế thêm phần nguồn để cung cấp cho bộ phận ngoại vi các mức áp 5VDC, 12VDC, GND.±5VDC, ±12VDC, GND ±5VDC, ±12VDC, GND
Phần ii Thiết kế mạch quang báo
sử dụng card vào ra đa năng
Ch ơng i Nguyên lý hoạt động chung của mạch quang báo
Thông tin quảng cáo luôn đợc coi trọng trong lĩnh vực kinh doanh , nó làm cho mọingời nhanh chóng biết tới nó Chính vì vậy mạch quang báo để hiển thị thông tin ra
đời , tồn tại và phát triển cùng với sự phát triển của khoa học kỹ thuật
Cùng với sự phát triển của khoa học kỹ thuật là sự phát triển của mạch quang báongày một hoàn thiện Ngày nay mạch quang báo thực sự thông dụng đồng thời tiệndụng và gọn nhẹ sử dụng trong nhiều lĩnh vực khác nhau
Sự phát triển của quang báo tải qua nhiều thời kỳ cụ thể là :
+ Hiển thị bằng LED 7 đoạn
Một lấc cao hơn của việc biểu thị bằng bảng nhng không biểu thị đợc chữ có dấulên có nhiều khó khăn cho việc sử dụng
Trang 28+ Hiển thị bằng LED nhiều thanh với cả chữ cái lẫn chữ có dấu
Khắc phục đợc việc dịch chữ không dấu nhng loại LED khó tìm thấy
+ Sử dụng CARD vào ra đa năng để điều khiển bảng đèn LED thông qua máy tính
Đây là mạch quang báo đợc ứng dụng rộng rãi trong nhiều lĩnh vực , đồng thời kếthợp với máy tính để điều khiển tạo nên nhiều ứng dụng
Ch ơng ii Các phần mềm hỗ trợ
I ORCAD.
1 Giới thiệu các ch ơng trình vẽ mạch in :
Công việc thiết kế mạch in cho một mạch ứng dụng nào đó chính là công việc tiếp theo sau giai đoạn đã hoàn tất mạch nguyên lí Việc thiết kế ra một bảng mạch in ít nhiều chúng ta cần phải dựa vào sơ đồ mạch nguyên lí đã hoàn chỉnh của nó để dựa vào các đờng tiền nối mạch để biết đợc các đờng nối giữa các chân nối linh kiện với nhau để từ đó ta phải chọn cách bố trí linh kiện và cách thức chạy các đờng nối cho phù hợp
Hiện nay có rất nhiều phần mềm hỗ trợ cho việc vẽ mạch in nh : PCB, Protel PCB, Crikit Maker, Orcad …) đ Các phần mềm này giúp việc vẽ mạch in trở nên thuận lợi và
dễ dàng hơn nhiều vì đa số đều đợc chạy trên môi trờng Window và có th viện rất đa dạng hỗ trợ cho các chân gắn linh kiện
2 Giới thiệu chơng trình vẽ mạch in OrCAD :
28
Trang 29Trong quá trình thiết kế mạch in cho bài tập này chúng tôi sử dụng trình vẽ mạch incủa OrCAD vì trình vẽ mạch in này đợc chạy trên môi trờng Window với những công
cụ gần gũi ngoài ra một đặc tính đợc a chuộng của trình vẽ mạch này là rất dễ thao tác
Giao diện của trình vẽ mạch in của OrCAD nh sau:
Khi thiết kế mạch in một thiết bị nào đó mà ta đã thiết kế chúng ta cần phải tuân theo các nguyên tắc sau đây :
+ Linh kiện phải bố trí hợp lý và gọn
+ Các linh kiện không đợc nằm quá gần nhau cũng nh không nên để các linh kiện
Ví dụ: trên một bảng vẽ mạch in có nhiều IC giống nhau, nhiều điện trở, nhiều tụ
điện giống nhau ta phải đánh số thứ tự cho chúng
Trờng hợp có nhiều IC giống nhau ta đánh số thứ tự nh sau: U1, U2, U3…) đ Nhng
đối với những IC có nhiều khối nhỏ nh các IC 74LS08 có 4 cổng NAND thì ta sẽ đánh
số là U1A, U1B, U1C, U1D
Nếu trờng hợp có nhiều tụ điện ta sẽ khai báo C1(200mF),C2(100mF) với C là kí hiệu của tụ điện trên bảng mạch, 1và 2 là số thứ tự của tụ điện trên bảng mạch và 200mF , 100mF là những giá trị của tụ điện
Nếu có nhiều điện trở ta sẽ khai báo R1(100), R2(4.7K)…) đ với R là kí hiệu của
điện trở, 1 và 2 là số thứ tự của các điện trở trên bảng mạch và 100, 4.7K là các giá trị của điện trở
Trang 303 Cách thức tạo một bảng mạch in trong OrCAD Layout :
Để tạo đợc một bản mạch in thì ta phải theo 5 bớc sau :
" chọn mục "Component" rồi chọn mục "Select from Spreadsheet" để chọn các chân gắn linh kiện mà OrCAD Layout hỗ trợ để có thể lựa chọn chính xác hơn linh kiện mà chúng ta muốn sử dụng trên bảng mạch Sau khi đã xác định đợc chân gắn linh kiện sốthông số cho chân linh kiện đó rồi sau đó ta có thể đặt linh kiện đó lên bảng vẽ Đối với những ai đã sử dụng OrCAD Layout một cách thành thạo hơn thì có thể thao tác một cách nhanh chóng hơn bằng cách nhắp Mouse vào Icon của các thanh công cụ trên giao diện của OrCAD Layout
Bớc3:
Sau khi đã đặt đầy đủ các linh kiện cần thiết lên bảng vẽ lúc này ta có thể di chuyểnhoặc xoay các linh kiện tùy ý để sắp xếp các linh kiện hợp lí trớc khi bắt tay vào nối mạch
Bớc 4:
Sau khi ta đã sắp xếp xong các linh kiện một cách hợp lí ta bắt tay vào việc nối mạch cho các chân linh kiện, quá trình nối mạch thủ công này phải luôn bám sát sơ đồmạch nguyên lí
Trớc khi vẽ các đờng nối cho mạch in thì ta phải xác định một số các thuộc tính choTrack (đờng nối) nh là độ rộng của Track Ta phải xác định kích cỡ cho Via (các điểm nối xuyên lớp) nếu mạch in của chúng ta đợc vẽ trên nhiều lớp Các lớp vẽ trong OrCAD Layout có nhiều nhng thờng chúng ta chỉ thao tác trên hai lớp là:
Lớp Toplayer : Có màu đỏ
Lớp Bottom : Có màu xanh da trời
Sau khi đã xác định xong các thông số cần cho bảng vẽ ta có thể bắt tay vào việc nối mạch Khi nối mạch ta có hai phơng pháp nối mạch nh sau:
+Phơng pháp nối mạch tự động: Ta nối các điểm nối lại với nhau (các đờng nối này cha cần phải riêng rẽ và có thể cắt nhau) Sau đó để thực hiện việc nối mạch tự động tavào mục "Auto" trên thanh toolbar và chọn "Auto Route" ta chọn dòng "Board" để thực hiện việc tự động nối mạch giữa hai điểm, chơng trình sẽ tự tìm đờng để nối các
điểm đã chọn sao cho các đờng tách biệt với nhau và không chạm hoặc cắt nhau.+Phơng pháp thứ hai: Là vẽ mạch bằng phơng pháp thủ công hơn đó là ta phải chọnlớp vẽ, chọn đờng Track rồi vẽ bằng tay
Bớc 5:
Sau khi đã vẽ xong các đờng nối việc cuối cùng là định kích cỡ cho đờng biên của bảng vẽ Sau đó lu tập tin này lại với đuôi *.MAX
II VISUAL BASIC
1 Giới thiệu ngôn ngữ lập trình VISUAL BASIC :
30
Trang 31Visual Basic đợc xem là một công cụ phát triển phần mềm Đã gần mời năm, Visual Basic là một ngôn ngữ lập trình phổ dụng nhất trên Thế Giới hiện nay Nhng tấtcả những tuyên bố này là về cái gì? Chính xác Visual Basic là gì và nó giúp gì cho ta?Bill Gates đã mô tả Visual Basic nh một “công cụ vừa dễ lại vừa mạnh để phát triển các ứng dụng Windows bằng Basic” Điều này dờng nh cha đủ để minh chứng cho tất cả những phô trơng trên, trừ khi bạn hiểu ra rằng hiện đang có hàng chục triệu ngời dùng Microsoft Windows.
Mặc khác, điểm mạnh khi dùng Visual Basic là ở chỗ tiết kiệm thời gian và công sức so với các ngôn ngữ lập trình khác khi xây dựng cùng một ứng dụng
Visual Basic gắn liền với khái niệm lập trình trực quan (Visual), nghĩa là khi thiết
kế chơng trình, ta nhìn thấy ngay kết quả qua từng thao tác và giao diện khi chơng trình thực hiện Đây là thuận lợi lớn so với các ngôn ngữ lập trình khác, Visual Basic cho phép ta chỉnh sửa đơn giản, nhanh chóng màu sắc, kích thớc, hình dáng của các
đối tợng có mặt trong ứng dụng
Một khả năng khác của Visual Basic là khả năng kết hợp các th viện liên kết động DLL (Dynamic Link Library) DLL là phần mở rộng cho Visual Basic tức là khi xây dựng một ứng dụng nào đó có một số yêu cầu mà Visual Basic cha đáp ứng đủ, ta viết thêm DLL phụ trợ
Khi viết chơng trình bằng Visual Basic, chúng ta phải qua hai bớc :
- Thiết kế giao diện (Visual Programming)
- Viết lệnh (Code Programming)
2 Thiết kế giao diện
a) FORM :
Form là biểu mẫu của mỗi ứng dụng trong Visual Basic Ta dùng Form (nh là một biểu mẫu) nhằm định vị và sắp xếp các bộ phận trên nó khi thiết kế các phần giao tiếp với ngời dùng
Ta có thể xem Form nh là bộ phận mà nó có thể chứa các bộ phận khác Form chínhcủa ứng dụng, các thành phần của nó tơng tác với các Form khác và các bộ phận của chúng tạo nên giao tiếp cho ứng dụng Form chính là giao diện chính của ứng dụng, các Form khác có thể chứa các hộp thoại, hiển thị cho nhập dữ liệu và hơn thế nữa
b) TOOLS BOX : (Hộp công cụ)
Bản thân hộp công cụ này chỉ chứa các biểu tợng biểu thị cho các điều khiển mà ta
có thể bổ sung vào biểu mẫu, là bảng chứa các đối tợng đợc định nghĩa sẵn của Visual Basic Các đối tợng này đợc sử dụng trong Form để tạo thành giao diện cho các chơng trình ứng dụng của Visual Basic Các đối tợng trong thanh công cụ sau đây là thông dụng nhất :