Bài giảng Lập trình ghép nối thiết bị ngoại vi
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình ghép nối thiết bị ngoại vi", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_lap_trinh_ghep_noi_thiet_bi_ngoai_vi.pdf
Nội dung text: Bài giảng Lập trình ghép nối thiết bị ngoại vi
- BỘ GIAO THÔNG VẬN TẢI TRƢỜNG ĐẠI HỌC HÀNG HẢI BỘ MÔN: KỸ THUẬT MÁY TÍNH KHOA: CÔNG NGHỆ THÔNG TIN BÀI GIẢNG LẬP TRÌNH GHÉP NỐI THIẾT BỊ NGOẠI VI TÊN HỌC PHẦN : LẬP TRÌNH GHÉP NỐI THIẾT BỊ NGOẠI VI MÃ HỌC PHẦN : 17311 TRÌNH ĐỘ ĐÀO TẠO : ĐẠI HỌC CHÍNH QUY DÙNG CHO SV NGÀNH : CÔNG NGHỆ THÔNG TIN HẢI PHÒNG - 2010
- MỤC LỤC Chƣơng 1: Các chuẩn ghép nối. 5 1.1. Cổng song song 5 1.1.1. Cấu trúc cổng 5 1.1.2. Trao đổi cổng song song với đường dẫn tín hiệu 6 1.1.3. Lập trình cổng song song 8 1.2. Cổng nối tiếp 8 1.2.1. Các đặc trưng điện áp 8 1.2.2. Khôn mẫu khung truyền 10 1.2.3. Các vấn đề truyền thông 11 1.3. Bus nối tiếp đa năng 12 1.3.1. Bus nối tiếp đa năng - Giới thiệu chung 12 1.3.2. Đầu nối và cáp tín hiệu 13 1.3.3. Truyền dữ liệu nối tiếp 14 1.3.4. Phần cứng, phần mềm và kết nối hệ thống 14 1.3.5. Chuẩn USB 2.0 15 1.4. Khe cắm mở rộng 15 1.4.1. BUS ISA 16 bit 15 1.4.2. BUS PCI 17 1.4.4. Ghép nối qua khe cắm mở rộng 18 Chƣơng 2. Bus Ghép nối đa năng 20 2.1. Đặt vấn đề 20 2.2. Tiêu chuẩn IEEE-488 truyền thông 20 2.3. Cấu hình và hoạt động của Bus GPIB 21 Chƣơng 3. Vòng đo điện áp 23 3.1.Truyền dữ liệu bằng vòng dòng điện 23 3.2. Vòng dòng điện 60mA 23 3.3. Vòng dòng điện 20mA 24 3.4. Vòng dòng điện 4 đến 20mA 25 Chƣơng 4. Các mạch điều khiển với bộ biến đổi A/D 26 4.1. Card biến đổi A/D 12 bit dùng ICL7107 26 4.2. Card biến đổi A/D 12 bit dùng ADC547 26 4.3. Card biến đổi ADA 9-16 bit 27 Chƣơng 5. Tự động hóa với PCL S7-200 29 5.1. Bộ điều khiển khả trình PCL 29 5.2. Soạn thảo chương trình với PCL 30 Chƣơng 6. Họ vi điều khiển 8951 33 6.1. Cấu trúc phần cứng 33 6.2. Tập lệnh 35 - 1 -
- YÊU CẦU VÀ NỘI DUNG CHI TIẾT Tên học phần: Lập trình ghép nối thiết bị ngoại vi Loại học phần: 2 Bộ môn phụ trách giảng dạy: Kỹ thuật máy tính Khoa phụ trách: CNTT Mã học phần: 17311 Tổng số TC: 2 TS tiết Lý thuyết Thực hành/Xemina Tự học Bài tập lớn Đồ án môn học 45 30 15 0 0 0 Điều kiện tiên quyết: Sinh viên phải học xong các học phần sau mới được đăng ký học phần này: Kiến trúc máy tính, Điện tử số, Mạch và tín hiệu, Vi xử lý, Kỹ thuật lập trình Mục tiêu của học phần: - Cung cấp các kiến thức cơ bản về cấu trúc, nguyên lý hoạt động của hệ thống giao tiếp với thế giới bên ngoài. - Nắm được các phương thức điều khiển vào/ra dữ liệu. - Hiểu rõ nguyên tắc, cách thức phối ghép các bộ điều khiển cơ bản Nội dung chủ yếu Chương I. Các chuẩn ghép nối. Chương II. Bus Ghép nối đa năng. Chương III. Vòng đo điện áp. Chương IV. Các mạch điều khiển với bộ biến đổi A/D. Chương V. Họ vi điều khiển 805x. Nội dung chi tiết của học phần: PHÂN PHỐI SỐ TIẾT TÊN CHƢƠNG MỤC TS LT BT TH KT Chƣơng I. Các chuẩn ghép nối. 25 16 9 1.1. Cổng song song 1.1.1. Cấu trúc cổng 1 1.1.2. Trao đổi cổng song song với đường dẫn tín hiệu 1 1.1.3. Lập trình cổng song song 2 3 1.2. Cổng nối tiếp RS-232 1.2.1. Các đặc trưng điện áp 1 1.2.2. Khuôn mẫu khung truyền 0.5 1.2.3. Các vấn đề truyền thông 0.5 1.2.4. Lập trình cho cổng nối tiếp RS-232 1 3 1.3. Bus nối tiếp đa năng 1.3.1. Giới thiệu chung 0.5 1.3.2. Đầu nối và cáp tín hiệu 0.5 1.3.3. Truyền dữ liệu nối tiếp 0.5 - 2 -
- PHÂN PHỐI SỐ TIẾT TÊN CHƢƠNG MỤC TS LT BT TH KT 1.3.4. Phần cứng, phần mềm và kết nối hệ thống 0.5 1.3.5. Chuẩn USB 2.0 0.5 1.3.6. Các kiểu truyền và phần mềm điều khiển 0.5 1.3.7. Lập trình Bus nối tiếp đa năng 2 3 1.4. Khe cắm mở rộng 1.4.1. BUS ISA 16 bit 1 1.4.2. BUS PCI 1 1.4.3. BUS AGP 1 1.4.4. Ghép nối qua khe cắm mở rộng 1 Chƣơng II. Bus Ghép nối đa năng 3 2 1 2.1. Đặt vấn đề 0.5 2.2. Tiêu chuẩn IEEE-488 truyền thông 0.5 2.3. Cấu hình và hoạt động của Bus GPIB 1 Chƣơng III. Vòng đo điện áp 3 3 3.1.Truyền dữ liệu bằng vòng dòng điện 1 3.2. Vòng dòng điện 60mA 0.5 3.3. Vòng dòng điện 20mA 0.5 3.4. Vòng dòng điện 4 đến 20mA 1 Chƣơng IV. Các mạch điều khiển với bộ biến đổi A/D 6 3 3 4.1. Card biến đổi A/D 12 bit dùng ICL7107 0.5 4.2. Card biến đổi A/D 12 bit dùng ADC547 0.5 4.3. Card biến đổi ADA 9-16 bit 1 4.4. Bộ đếm tần số dùng cho máy tính 1 Chƣơng V. Họ vi điều khiển 51 3 2 1 5.1. Bộ điều khiển khả trình PCL 1 5.2. Soạn thảo chương trình với PCL 1 Chƣơng VI. Họ vi điều khiển 51 5 2 3 6.1. Cấu trúc phần cứng 0,5 6.2. Tập lệnh 1 6.3. Kết nối điều khiển bằng 8951 0,5 Nhiệm vụ của sinh viên : Tham dự các buổi thuyết trình của giáo viên, tự học, tự làm bài tập do giáo viên giao tham dự các buổi thực hành, các bài kiểm tra định kỳ và cuối kỳ. Tài liệu học tập : - Ngô Diên Tập, Đo lường và điều khiển bằng máy tính, NXB KH&KT - Ngô Diên Tập, Kỹ thuật ghép nối máy tính, NXB KH&KT - Phan Xuân Minh, Tự động hóa với SIMATIC S7-2000, NXB NN - Kỹ thuật lập trình PLC-SPC - MSC 51 Microcontroller family user's manual- Intel - 3 -
- Hình thức và tiêu chuẩn đánh giá sinh viên: - Đánh giá dựa trên tình hình tham dự buổi học trên lớp, các buổi thực hành, điểm kiểm tra thường xuyên và điểm kết thúc học phần. - Hình thức thi cuối kỳ: thi viết. Thang điểm: Thang điểm chữ A, B, C, D, F Điểm đánh giá học phần Z = 0.3X + 0.7Y. Bài giảng này là tài liệu chính thức và thống nhất của Bộ môn Kỹ thuật máy tính, Khoa Công nghệ Thông tin và được dùng để giảng dạy cho sinh viên. Ngày phê duyệt: 25 / 10 / 2009 Trƣởng Bộ môn: ThS. Ngô Quốc Vinh - 4 -
- Chƣơng 1: CÁC CHUẨN GHÉP NỐI 1.1. Cổng song song 1.1.1. Cấu trúc cổng Cổng song song có hai loại: ổ cắm 36 chân và ổ cắm 25 chân. Ngày nay, loại ổ cắm 36 chân không còn được sử dụng, hầu hết các máy tính PC đều trang bị ổ cắm 25 chân nên ta chỉ cần quan tâm đến loại 25 chân. VỊ TRÍ TÊN TÍN HIỆU CHÂN CHỨC NĂNG Khi đặt một mức điện áp LOW vào chân này, máy Strobe 1 tính thông báo cho máy in biết có một byte sẵn sàng trên các đường tín hiệu để được truyền. D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 Các đường dữ liệu ( 8 đường ) D6 8 D7 9 Mức LOW ở chân này, máy in thông báo cho máy Acknowledge 10 tính biết đã nhận được kí tự vừa gửi và có thể tiếp tục nhận. Máy in gửi một mức lôgic HIGH vào chân này trong khi đang đón nhận hay đang in ra dữ liệu để Busy (Báo bận) 11 thông báo cho máy tính biết bộ đệm dữ liệu đầy hay máy in đang ở trạng thái Off-line Máy in đặt trạng thái trở kháng cao (HIGH) ở chân Paper empty (Hết giấy) 12 này khi hết giấy. Một mức HIGH có nghĩa là máy in đang trong Select (Lựa chọn) 13 trạng thái được kích hoạt . Auto Linfeed (Tự động Mức LOW ở chân này máy tính nhắc máy in tự 14 nạp dòng) động nạp một dòng mới mỗi khi kết thúc một dòng. Mức LOW ở chân này, máy in báo cho máy tính Error (Có lỗi) 15 biết đã xảy ra lỗi khi in. Reset (Đặt lại trạng 16 Máy in được đặt trở lại trạng thái được xác định thái máy in) lúc ban đầu khi chân này ở mức LOW. Select Input (Lựa chọn 17 Bằng một mức LOW máy in được lựa chọn bởi lối vào) máy tính. Ground (Nối đất) 18-25 Qua bảng trên ta thấy cáp nối giữa máy tính và máy in bao gồm 25 sợi, tuy nhiên không phải tất cả các sợi cáp đều được sử dụng như vậy chúng ta có thể tận dụng dây cáp này nếu có một vài sợi bị đứt. - 5 -
- Qua cách mô tả chức năng của từng tín hiệu riêng lẻ ta có thể nhận thấy là các đường dẫn tín hiệu có thể chia thành 3 nhóm: • Các đường dẫn tín hiệu xuất ra từ máy tính PC và điều khiển máy in, được gọi là các đường dẫn điều khiển. • Các đường dẫn tín hiệu, đưa các thông báo ngược lại từ máy in về máy tính, được gọi là các đường dẫn trạng thái. • Đường dẫn dữ liệu, truyền các bit riêng lẻ của các ký tự cần in. Từ cách mô tả các tín hiệu và mức tín hiệu ta có thể nhận thấy các tín hiệu Acknowledge, Auto Linefeed, Error, Reset, và Select Input kích hoạt ở mức Low. Thông qua chức năng của các chân này ta cũng hình dung được cách điều khiển máy in. Cần chú ý là 8 đường dẫn song song đều được dùng để chuyển dữ liệu từ máy tính sang máy in. Trong những trường hợp này, khi chuyển sang ứng dụng đo lường và điều khiển ta phải chuyển dữ liệu từ mạch ngoại vi vào máy tính để thu thập và xử lý. Vì vậy ta phải tận dụng một trong năm đường dẫn theo hướng ngược lại, nghĩa là từ bên ngoài vào máy tính để truyền số liệu đo lường. 1.1.2. Trao đổi cổng song song với đường dẫn tín hiệu Để có thể ghép nối các thiết bị ngoại vi, các mạch điện ứng dụng trong đo lường và điều khiển với cổng song song ta phải tìm hiểu cách trao đỏi với các thanh ghi thông qua cách sắp xếp và địa chỉ các thanh ghi. Các đường dẫn của cổng song song được nối với ba thanh ghi 8 bit khác nhau: - 6 -
- THANH GHI DỮ LIỆU ĐỊA CHỈ ( 278H, 378H, 2BCH, 3BC H) THANH GHI TRẠNG THÁI ĐỊA CHỈ ( 279H, 379H, 2BDH, 3BD H) THANH GHI ĐIỀU KHIỂN ĐỊA CHỈ ( 27AH, 37AH, 2BEH, 3BE H) Như sơ đồ trên đã trình bày 8 đường dữ liệu dẫn tới thanh ghi dữ liệu còn 4 đường dẫn điều khiển Strobe, Auto Linefeed, Reset, Select Input dẫn tới thanh ghi điều khiển. Năm đường dẫn trạng thái Acknowledge, Busy, Paper Empty, Select, Error tới thanh ghi trạng thái. Thanh ghi dữ liệu hay 8 đường dẫn dữ liệu không phải là đường dẫn 2 hướng trong tất cả các loại máy tính nên dữ liệu chỉ có thể được xuất ra qua các đường dẫn này cụ thể từ D0 đến D7. Thanh ghi điều khiển hai hướng, hay nói chính xác hơn: Bốn bit có giá trị thấp được sắp xếp ở các chân 1, 14, 16, 17. Thanh ghi trạng thái chỉ có thể được đọc và vì vậy được gọi là một hướng. - 7 -
- 1.1.3. Lập trình cổng song song Việc truy nhập trực tiếp lên các giao diện của máy tính PC, cụ thể là lên các đường dẫn riêng lẻ được tiến hành thuận lợi nhất là bằng hợp ngữ, Các ngôn ngữ bậc cao như Turbo Pascal hoặc C cũng có những lệnh đơn giản để thực hiện việc truy nhập lên các cổng tuy rằng tốc độ truy nhập có thấp hơn đôi chút. Trước hết ta cần biết địa chỉ của các cổng mà qua đó các giao diện song song có thể được trao đổi. Sau đó sẽ quyết định đọc dữ liệu trong thanh ghi nào hoặc xuất dữ liệu ra thanh ghi nào? Nói chung, các lệnh được sử dụng có thể viết như sau: Bằng hợp ngữ Để xuất ra dữ liệu OUT DX, AL Để nhập vào dữ liệu IN AL, DX Trong đó địa chỉ của thanh ghi cần trao đổi phải đứng ở trong DX. Ví dụ: Giả sử LPT1 có địa chỉ là 378H MOV DX,378H; Nạp địa chỉ của cổng LPT1 vào thanh ghi DX OUT DX,AL; Xuất nội dung của thanh ghi AL lên đường dẫn dữ liệu (Từ D0 đến D7) của LPT1. Hai lệnh sau đây đọc các byte ở đường dẫn dữ liệu của cổng LPT1: MOV DX, 378H; Nạp địa chỉ của cổng LPT1 vào thanh ghi DX IN AL,DX: Đọc thông tin trên các đường dẫn dữ liệu (Từ D0 đến D7) của LPT1 sang thanh ghi AL. Hai lệnh sau đây xuất nội dung của thanh ghi AL sang thanh ghi điều khiển của LPT1. MOV DX,37AH; Nạp địa chỉ của thanh ghi điều khiển cổng LPT1 vào thanh ghi DX OUT DX,AL; Mang nội dung của thanh ghi AL sang thanh ghi điều khiển của LPT1. Hai lệnh sau đây đọc các byte ở đường dẫn trạng thái của cổng LPT1 đặt vào thanh ghi AL. MOV DX, 379H; Nạp địa chỉ của thanh ghi trạng thái vào thanh ghi DX IN AL,DX; Đọc nội dung của thanh ghi trạng thái của LPT1 sang thanh ghi AL. Bằng TurboC Để xuất ra dữ liệu Outportb(Địa chỉ cổng,Giá trị) Để nhập vào dữ liệu Inportb(Địa chỉ cổng) Ví dụ Lệnh sau đây xuất giá trị 5 qua thanh ghi dữ liệu của cổng LPT1 Outportb(0x378, 5) Lệnh sau đây đọc thông tin của thanh ghi trạng thái của cổng LPT1 sắp xếp vào biến status Status= Inportb(0x379) 1.2. Cổng nối tiếp 1.2.1. Các đặc trưng điện áp +12V là mức logic 0 (LOW) Một trong những thông số quan trọng nhất của RS232 là mức điện áp trên đường truyền. RS232 đầu tiên sử dụng mức địên áp TTL giống như cổng song song. Chính vì thế ngay sau khi ra đời RS232 đã xuất hiện nhu cầu phải cải tiến. Ngoài mức điện áp thì tiêu chuẩn cũng quy định rõ giá trị của trở kháng tải đấu vào bus và trở kháng - 8 -
- ra của bộ phát và bộ đệm. Hướng cải tiến của mức điện áp là tăng giá trị của điện áp truyền để tăng khả năng chống nhiễu do vậy truyền được xa hơn. Từ sơ đồ trên ta thấy cải tiến của RS232B là làm tăng mức điện áp từ ±5V đến ±25V, Trong đó: Mức logic 1 tính từ -5V đến -25V. Mức logic 0 tính từ +5V đến +25V. Các mức từ -3V đến +3V gọi là trạng thái chuyển tiếp. Các mức điện áp từ ±3V đến ±5V gọi là không xác định. Dữ liệu có mức điện áp rơi vào khoảng này sẽ dẫn đến kết quả không dự tính được và đây cũng là tình trạng hoạt động của những hệ thống được thiết bị kế sơ sài. Điều đáng chú ý ở đây là: Mức 1 ~ LOW, mức 0 ~ HIGH vì trước khi đưa vào xử lý còn có bộ nhớ đảo còn gọi là bộ nhớ chuẩn dạng tín hiệu. Việc nâng mức điện áp của chuẩn RS232B dẫn đến sự hạn chế về tốc độ truyền, vì vậy người ta thấy giữa tốc độ truyền và khoảng cách truyền phải có sự dung hoà. RS232C là chuẩn hiện nay đang được áp dụng. Điện áp sử dụng là ±12V. Trong đó: -12V là mức logic 1 (HIGH) Cụ thể: +3V -> +12V là mức 0 +5V -> +12V là mức tin cậy (của mức 0) -3V -> -12V là mức 0 -5V -> -12V là mức tin cậy (của mức 1) Bằng việc thu hẹp giới hạn điện áp đường truyền, tốc độ truuyền dữ liệu được tăng lên đáng kể. Ngoài ra chuẩn RS232C cũng quy định trở kháng tải, giá trị này thuộc phạm vi 3000Ω đến 7000 Ω; đồng thời bộ đệm phải duy trì tăng điện áp tương đối lớn khoảng 30V/μs. - 9 -
- Các vi mạch Motorola loại MC1488 và MC1489 đã hoàn toàn thoả mãn các thông số kỹ thuật này. Các yêu cầu về mặt điện được quy định trong chuẩn RS232C như sau: 1. Mức logic 1(mức dấu) nằm trong khoảng -3V -> -12V; Mức logic 0 (Mức trống) nằm trong khoảng +3V -> +12V. 2.Trở kháng tải về phía bộ nhận của mạch phải nằm trong khoảng 3000Ω -7000Ω. 3. Tốc độ truyền nhận cực đại 100 Kbit/s. 4. Các lối vào của bộ nhận phải có điện dung <2500pF. 5. Độ dài của cáp nối giữa máy tính và thiết bị ghép nối qua cổng nối tiếp không thể vượt quá 15 máy nếu không sử dụng modem. 6. Các giá trị tốc độ truyền dữ liệu chuẩn là 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 28800, , 56600 baud (bit/s). 1.2.2. Khuôn mẫu khung truyền Đặc điểm của đường truyền dữ liệu qua cổng nối tiếp là tiến hành truyền và nhận trên các đường dẫn đơn lẻ, cho nên khi thiết bị truyền và thiết bị nhận được ghép nối với nhau thì đường truyền bên này sẽ được nối với đường nhận bên kia và ngược lại. Có như vậy mới hình thành được vòng kín của quá trình truyền dữ liệu. Để lưu ý mối quan hệ bắt chéo tay như vậy người ta đã đưa vào dấu x ở giữa TD (TxD) và RD (RxD). Việc truyền dữ liệu qua cổng nối tiếp RS232 được tiến hành theo kiểu không đồng bộ, trong đó khuân mẫu dữ liệu có bit bắt đầu, bit dừng được chỉ ra như hình vẽ sau: Rõ ràng theo cách truyền này chỉ có một ký tự được truyền tại một thời điểm. Giữa các ký tự có một khoảng phân cách giữa chúng trong đó có chứa bit dừng, bit bắt đầu. Đầu tiên bộ truyền sẽ gửi một bit bắt đầu (bit Start) để thông báo cho bộ nhận biết là sau bit này sẽ là các bit dữ liệu có thể là 5,6 hoặc 7 bit. Tiếp theo là một bit chẵn lẻ và sau cùng là 1 hoặc 2 bit dừng. Điểm đáng chú ý là bao giờ bit bắt đầu cũng ở mức LOW. Khoảng thời gian phân cách của một bit đơn sẽ quyết định tốc độ truyền. Khoảng phân cách càng nhỏ thì tốc độ truyền càng lớn. Bit bắt đầu ~ mức 0, tiếp theo là 7 bit dữ liệu 1000001,1 bit chẵn lẻ 1, cuối cùng là 2 bit dừng 11. - 10 -
- Như vậy, toàn bộ khung truyền được phát ra là 01000001111. Bit chẵn lẻ dùng để kiểm tra phát hiện lỗi và sửa lỗi. Thực chất của quá trình này như sau: Khi kí tự được truyền thì máy tính sẽ đếm số kí tự 1 trong kí tự được truyền. Nếu số đó là chẵn => bit chẵn lẻ =1; Nếu số đó là lẻ => bit chẵn lẻ =0. Ở nơi nhận sẽ kiểm tra kí tự nhận được và đếm số 1, sau đó sẽ so sánh với bit chẵn lẻ. Nếu kết quả trùng khớp thì khung truyền coi như không mắc lỗi, ngược lại nó sẽ phát lệnh yêu cầu truyền lại khung truyền. Nếu tỷ lệ mắc lỗi càng nhiều thì tốc độ truyền càng giảm. Kỹ thuật mã lỗi chẵn lẻ theo kiểu này có một đặc điểm rất đơn giản, nhưng trong trường hợp bị mắc lỗi 2 lần liền hoặc 4 lỗi liền thì lai không phát hiện ra. Nhưng trên thực tế với 7 bit được truyền thì khả năng bị mắc 2 hoặc 4 lỗi là rất nhỏ có thể xem như không bao giờ xảy ra. Chính vì vậy, cách mã lỗi theo kiểu này vẫn được dùng phổ biến ở trong kỹ thuật truyền dữ liệu qua cổng nối tiếp. Tốc độ truyền: Để đánh giá chất lượng của cuộc truyền dữ liệu qua cổng nối tiếp thì một trong những thông số đặc trưng quan trọng là tốc độ truyền/nhận dữ liệu. Trong kỹ thuật truyền dữ liệu qua cổng nối tiếp ta thấy có bit bắt đầu, bit dừng. Trong một số trường hợp có bit chẵn lẻ đã được bổ xung vào, như vậy có tới 10 bit được truyền trong khi chỉ có 7 bit dữ liệu, còn trong trường hợp sử dụng 2 bit dừng thì có tới 11 bit truyền trong khi chỉ có 7 bit dữ liệu. Như vậy nếu có 10 kí tự được gửi trong 1 giây và nếu như có 11 bit được sử dụng cho 1 kí tự thì tốc độ truyền thông sẽ là 110 bit/s. Như vậy giữa tốc độ truyền bit và tốc độ truyền kí tự là khác nhau. Ngoài tốc độ truyền bit người ta còn sử dụng tốc độ baud. Đây là tên của một nhà kỹ thuật người Pháp đã giành nhiều công sức để nghiên cứu về truyền thông và người ta đã lấy tên ông để làm đơn vị truyền dữ liệu. Thông thường tốc độ bit và tốc độ baud là đồng nhất, chỉ trong trường hợp có môdem do có thêm quá trình biến đổi tín hiệu nên 2 tốc độ này nó khác nhau. Tốc độ bps Kí tự /s 110 11 300 30 600 60 1200 120 2400 240 4800 480 9600 960 19200 1920 56600 5660 1.2.3. Các vấn đề truyền thông - . : - 11 -
- - 0,1 ms. - . 1.3. Bus nối tiếp đa năng 1.3.1. Bus nối tiếp đa năng - Giới thiệu chung Có thể nói MT từ khi ra đời đã không ngừng phát triển. Hiện nay máy tính PC vẫn đang được cải tiến nhằm nâng cao những tính năng của hệ thống. Những hướng chính là: + Tiếp tục cải tiến bộ vi xử lý cũng như đưa ra những bộ xử lý mới. + Cải tiến các hệ thống đồ họa, ví dụ: card AGP + Nâng cao tốc độ của đồng hồ hệ thống và của chính bộ xử lý. + Cải tiến các kiến trúc bus đặc biệt các cầu PCI. + Hoàn thiện công nghệ cắm và chạy (plug and play) và quá trình tự đông cài đặt. Đặc biệt hoàn thiện cổng USB để trợ giúp cho việc dễ dàng ghép nối. Nếu như máy tính dùng nguồn AT có hai cổng RS 232 thì ở phía sau các máy tính đời mới thường dùng nguồn ATX đều có 2 ổ cắm USB. Cổng USB thực chất là BUS ,bởi vì qua đó có thể đấu nối đồng thời rất nhiều thiết bị ngoại vi với những chủng loại khác nhau. Vì vậy, có thể gọi bus USB là bus nối tiếp đa năng theo đúng nghĩa của nó. Bus USB nhằm thống nhất các kiểu ghép nối máy tính khác nhau về một dạng đầu nối và vì vậy khả năng ghép nối máy tính qua USB trở nên hết sức hấp dẫn . Các giao diện song song nối tiếp, các máy ghép hình ảnh số đều có thể đấu nối vào bus USB.Vì vậy trong tương lai bus USB sẽ thực sự trở thành bus đa năng. Về nguồn gốc USB được đưa ra sử dụng đầu tiên vào năm 1996, phải đến giữa năm 1998 mới thực sự được hỗ trợ đầy đủ và thể hiện vai trò của nó. Các thống kê kỹ thuật của USB đã được các công ty lớn cùng tham gia xây dựng.Trong đó phải kể đến Compaq, Digital Equipment, Nothern, Telecom, IBM, Intel, Microsoft, NEC. Có thể nói bus USB đã nhanh chóng trở thành một chuẩn không chính thức. Người ta cũng sản xuất ra một card mở rộng cho phép cắm vào các máy tính đời cũ để tạo ra 2 cổng USB . Sau khi USB được giới thiệu đã có nhiều thiết bị sử dụng trong lĩnh vực điện tử dân dụng, truyền thông được thiết kế để nối vào với bus này và Microsoft đã viết phần mềm hỗ trợ cho USB từ năm 1998. Trong win 95 thì USB đã được hỗ trợ rất đầy đủ. USB là một bus nối tiếp vì dữ liệu truyền trên bus tương tự như trong cổng nối tiếp. Cụ thể là theo từng bit một nối tiếp nhau. Nhưng có một điểm đáng lưu ý là dữ liệu được truyền trên cùng các đường dẫn theo 2 hướng trong khi theo tiêu chuẩn RS232 thì dữ liệu được truyền trên các đường dẫn khác nhau nhưng trên mỗi đường chỉ theo một hướng. Sự khác nhau cơ bản thể hiện ở chỗ các giao diện nối tiếp từ trước đến nay chỉ có thể sử dụng cho một thiết bị nhưng bus USB lại cho phép đấu nối đến 127 thiết bị.Vì vậy được gọi là một bus. Mỗi thiết bị đấu vào đều nhận một địa chỉ và thôg qua địa chỉ này thiết bị có thể trao đổi dữ liệu với máy tính cũng như các thiết bị khác và địa chỉ này được mô tả bằng 7 bit. Về mặt tốc độ, việc trao đổi dữ liệu qua bus USB nhanh hơn so với qua cổng RS 232.Trên thực tế vận tốc truyền có thể đạt được 12Mbps trên các đường dẫn dữ liệu. Dải thông sẽ được phân chia cho tất cả các thiết bị được đấu nối trên bus .Với bus USB loại 1.0 tốc độ truyền dữ liệu lên tới 12 Mbps, nhưng ở version 2.0 vận tốc đạt tới 480Mbps - 12 -
- vẫn giữ được tính tương thích ở phiên bản 1.0. Bus USB có mối liên quan chặt chẽ với đặc tính cắm để chạy ở các máy tính PC đời mới trong khi máy tính đang hoạt động, thiết bị có thể được đấu vào hoặc tháo ra mà không cần tắt điện nguồn nuôi trong máy tính. Đ ặc tính được gọi là đấu ngắt nóng. Hệ thống tự nhận biết một thiết bị mới được đấu vào thiết bị USB và lập tức nạp phần mềm điều khiển hay tệp đệm thích hợp. Những đặc tính cơ bản của bus USB có thể kể ra là: + Các bộ truyền đảm thời có thể hiểu là truyền liên tục hỗ trợ các tín hiệu video và âm thanh với các đường truyền đẳng thời thì các thiết bị truyền dữ liệu theo kiểu đảm thời và theo kiểu đoán trước . +Bus USB hỗ trợ các thiết bị không đẳng thời, các thiết bị có quyền ưu tiên cao nhất (các thiết bị đảm thời cũng như đẳng thời có thể tồn tại cùng một thời điểm). +Các thông số kỹ thuật cắm chạy các cáp và cách kết nối đều được tiêu chuẩn hoá rộng rãi trong công nghiệp. +Các Hub được sản xuất thành nhiều tầng với khả năng mở rộng các mức gần như vô tận và các thao tác xảy ra đồng thời. +Tốc độ truyền là 12Mbps với các kích thước gói dữ liệu khác nhau. +Hỗ trợ nhiều yêu cầu về giải thông từ một vài Mbps đến 19 Mbps. +Hỗ trợ tốc độ truyền dữ liệu trên một phạm vi rộng các giá trị thông qua việc đỉều tiết kích thước bộ đệm gói dữ liệu và cơ chế tiềm ẩn(latency), có khả năng cắm nóng (hot plug). Nghĩa là cho phép thiết bị ngoại vi có thể được nối mà không cần phải tắt nguồn nuôi cung cấp điện cho mấy tính. Có thể đấu, ngắt và thay đổi cấu hình của thiết bị ngoại vi một cách linh hoạt . +Khả năng quản lý năng lượng được tăng cường với các chế độ nghỉ trên phạm vi hệ thống. +Tự nhận dạng thiết bị ngoại vi kiểu mới, tự động vẽ bản đồ chức năng đối với phần mềm điều khiển và cấu hình. +Hỗ trợ cho các thiết bị loại khác nhau với nhiều công nghệ khác nhau. +Điều khiển luồng dữ liệu thông qua bộ đệm bằng việc quản lý giao thức đặt sẵn bên trong. +Có thể xử lý lỗi và hoàn trả lỗi. +Hỗ trợ khả năng nhận dạng các thiết bị mắc lỗi. +Giao thức đơn giản trong việc thực hiện và tích hợp. USB là một kiến trúc bus cân bằng trong quá trình hoạt động máy chủ USB đóng vai trò điều khiển dải thông của hệ thống. Mỗi thiết bị được gán một địa chỉ mặc định khi thiết bị USB được cấp điện lần đầu hoặc được đặt lại. Một đặc điểm cơ bản khác nữa của USB điện áp nguồn nuôi (+5v) có thể nhận được từ bus. Các thiết bị có công suất tiêu thụ nhỏ có thể sử dụng trực tiếp điện áp trên bus mà không cần có nguồn nuôi riêng. 1.3.2. Đầu nối và cáp tín hiệu USB có hai kiểu đầu nối khác nhau được gọi là A,B. Hệ thống ấy được thiết kế sao cho không xảy ra hiện tượng đấu nối nhầm. Bus USB sử dụng cáp nối 4 sợi dây để nối với các thiết bị ghép nối. Trong đó có một cặp đường truyền 2 sợi xoắn được dùng làm đường dẫn dữ liệu vi phân, ký hiệu là D+ và D-. Còn một cặp kia dùng làm đường 5V và đường nối đất chung. Cáp nối luôn được thực hiện liên kết 1:1. Sự sắp xếp các chân ở đầu nối cáp tuân theo những quy định sau: Hai ổ cắm USB phía sau máy tính đời mới nhất đều là kiểu A, qua đó có thể đấu trực tiếp thiết bị USB vào máy tính. Các thiết bị có tốc độ thấp như chuột có thể đấu thẳng vào ổ cắm này bằng một phích cắm cũng kiểu A. - 13 -
- Trong các trường hợp khác thiết bị thường có một ổ cắm kiểu B, muốn nối với máy tính phải sử dụng một cáp kiểu A,B. Trong trường hợp cần nối dài cáp, tức là để tăng khoảng cách giữa máy tính PC tới thiết bị ghép nối, người ta sử dụng cáp A,A. Cho đến nay các cáp USB đều được các nhà sản xuất cung cấp dưới dạng hoàn chỉnh trên đó đầu cắm, độ dài, chất lượng bọc kim chống nhiễu đều không thể thay đổi được.Vì vậy, tuỳ theo mục đích sử dụng ta phải lựa chọn thông số cáp cho chính xác từ chiều dài cho đến đầu nối. Qua ổ cắm USB sau máy tính có thể lấy ra điện áp + 5v với dòng điện tiêu thụ 100 mA.Trong một số trường hợp có thể lấy tới 500 mA. Hai đường đẫn dữ liệu D +, D - cho phép đấu nối với các linh kiện USB đặc biệt chẳng hạn như là một số vi điều khiển tín hiệu ở chân D +,D – là các tín hiệu vi phân với mức điện áp = 0/ 3,3 v. Điện áp nguồn nuôi cho bus có thể tăng đến 5,25 v và khi chịu dòng tải lớn có thể giảm xuống 4,2 v. Một vi mạch ổn áp trong trường hợp này có thể tạo ra một điện áp ổn định +3,3 v. Toàn bộ hệ thống có thể thiết kế sao cho khi chịu dòng tải lớn điện áp nguồn cũng không vượt quá + 4,2v. Khi thiết bị ghép nối cần dòng tiêu thụ >100mA cần xem xét kỹ khả năng cung cấp và chịu tải của các linh kiện phía trong MT để tránh những hậu quả đáng tiếc có thể xảy ra. Khi ghép nối một thiết bị với bus USB ta thường phải phân biệt rõ các thiết bị sử dụng nguồn nuôi riêng chẳng hạn như máy in với các thiết bị nhận điện áp nguồn nuôi qua bus.Trong một số trường hợp cả hai chế độ nguồn nuôi có thể cùng tồn tại để lựa chọ theo cách thiết kế của bus. Dòng tiêu thụ lấy từ bus được tự động hạn chế. Khi dòng tiêu thụ vượt quá giới hạn cho phép thì điện áp cung cấp cũng tự động ngắt. 1.3.3. Truyền dữ liệu nối tiếp Một đặc điểm khác nữa của bus USB là chỉ có một máy chủ nghĩa là mọi hoạt động trên bus đều xuất phát từ máy tính PC quản lý. Dữ liệu được gửi lên cũng như nhận từ bus theo những gói nhỏ chứa 8 -> 256 byte. Máy tính PC có thể yêu cầu dữ liệu gửi đến từ một thiết bị nhưng ngược lại không một thiết bị nào có thể tự gửi dữ liệu đi. Toàn bộ lượng dữ liệu đều có một khung đúng bằng 1ms.Trong phạm vi một khung nhiều gói dữ liệu kế tiếp dành cho các thiết bị khác nhau có thể được xử lý, trong đó có những gói dữ liệu cần gửi với tốc độ thấp, có những gói dữ liệu cần gửi với tốc độ cao cùng tồn tại trong một khung. Khi cần ghép nối nhiều thiết bị USB với máy tính, ta cần có một hộp phân phối hay còn gọi là Hub cho phép tránh xảy ra tình trạng tốc độ tín hiệu cao được chuyển giao tới thiết bị có tốc độ thấp. 1.3.4. Phần cứng, phần mềm và kết nối hệ thống Khi nối một thiết bị vào bus thì máy chủ USB sẽ tương tác với thiết bị USB thông qua bộ điều khiển của máy chủ. Khi đó máy chủ chịu trách nhiệm về những công việc sau: Phát hiện việc kết nối hoặc huỷ bỏ của các thiết bị USB - 14 -
- Quản lý việc điều khiển dòng dữ liệu giữa máy chủ và các thiết bị USB Thống kê trạng thái và tính hoạt động của hệ thống. Cung cấp dòng điện đã được nạp để hạn chế công suất cho các thiết bị USB được kết nối. Trên máy chủ có phần mềm quản lý hệ thống USB, cụ thể quản lý sự tương tác giữa các thiết bị USB và phần mềm thiết bị dựa trên máy chủ. Có năm vùng tương tác gữa phần mềm hệ thống USB và phần mềm thiết bị cụ thể là: Điểm danh và định cấu hình thiết bị. Truyền dữ liệu trong chế độ đẳng thời. Truyền dữ liệu trong chế độ không đồng bộ. Quản lý năng lượngQuản lý thông tin về thiết bị và về bus. 1.3.5. Chuẩn USB 2.0 Phiên bản USB 1.0 ra đời vào năm 1996 đã là một thành công rất lớn và bây giờ đang là cổng tiêu chuẩn trên đa số các máy tính PC đời mới. Hạn chế chính của phiên bản này là tốc độ truyền vẫn còn tương đối chậm. Đặc biệt khi tích hợp nhiều thiết bị ngoại vi thành một hệ thông kết nối riêng rẽ. Vì vậy, phiên bản 2.0 đã được ra đời cho phép đạt tới tốc độ truyền dữ liệu trên 480Mbps trong khi vẫn giữ tính tương thích với phiên bản 1.0. Các đặc tính chính của phiên bản 2.0 là: Tốc độ thấp(1,5Mbps) dùng cho các thiết bị tương tác. thông thường 10->100Kbps. Tốc độ cao(12Mbps) dùng cho các ứng dụng có các tín hiệu diện thoạ và âm thanh. Thông thường 500Kbps->10Mbps. Tốc độ rất cao(470Mbps) dùng cho các ứng dụng video và bộ nhớ. Thông thường 250 - >400Mbps. Rõ ràng là phiên bản USB 2.0 sẽ đẩy nhanh quá trình hướng tới một máy tính PC sử dụng trong tương lai tức là chỉ cần dùng một loại cổng USB cho tất cả các thiết bị ghép nối. 1.4. Khe cắm mở rộng 1.4.1. BUS ISA 16 bit Từ tên gọi cho thấy đây là loại bus được kiến trúc theo tiêu chuẩn công nghiệp (Industry Standard Architecture). Một số tài liệu gọi bus PC là bus ISA 8 bit thì loại này được phân biệt rõ là ISA 16 bit.Tác giả của loại bus này là công ty IBM. Công ty này đã thiết kế ra bus ISA để dùng cho máy tính AT Advanced Technology dựa trên cơ sở của bộ xử lý 80286. Điểm mạnh rõ nét của loại bus này là có thể cho phép cùng một lúc xử lý hoặc trao đổi vứi 16 bit dữ liệu nghĩa là gấp đôi bus PC. Để đảm bảo tính tương thích so với bus PC người ta đưa thêm vào một rãnh cắm thứ hai thẳng hàng so với rãnh cắm thứ nhất và có chứa 36 tiếp điểm xếp thành hai hàng mỗi hàng 18 tiếp điểm. Trên rãnh cắm thứ hai có chứa 8 bit dữ liệu và 4 đường dẫn địa chỉ. Như vậy ở trên bus ISA có tổng cộng 16 bit dữ liệu và 24 bit địa chỉ . Tốc độ truyền dữ liệu được quy định bởi tốc độ đông hồ cố định. Như vậy trên bus ISA có một bus dữ liệu16 bit và chính vì lẽ đó đôi khi bus này còn gọi là bus ISA16 bit để phân biệt với bus 8 bit ngoài ra nó còn 24 bit địa chỉ chỉ cho phép quản lý 16 Mb bộ nhớ. Giống như bus PC, nó cũng sử dụng tốc độ đồng hồ cố định nhưng khác về giá trị, cụ thể là 8MHz.Một lợi thế rất lớn của card mở rộng dùng với bus PC là chúng cố thể cắm được vào rãnh cắm ISA bởi vì bus ISA bảo đảm tính tương thích kế thừa. Có thể nói card mở rộng ISA rất phổ biến bởi vì chúng thể hiện được tính năng ưu việt đối với hầu hết các ứng dụng ghép nối. - 15 -
- Các linh kiện được sử dụng trên card mở rộng ISA thường rất rẻ, cho nên có thể nói trên thực tế việc ghép nối bằng card mở rộng ISA tỏ ra là một công nghệ đã qua thử thách và đáng tin cậy. Ứng dụng tiêu biểu của card mở rộng ISA 16 bit có thể kể ra là: card vào ra nối tiếp và song song, card âm thanh, card mạng Như vậy để đảm bảo tính tương thích với loại bus PC 8 bit thì rãnh cắm mở rộng ISA 16 bit bao gồm 2 phần: Phần thứ nhất giống hệt rãnh cắm PC, các tiếp điểm ở hai mặt được đánh số theo A và B. Phần thứ hai bao gồm 36 tiếp điểm chia làm 2 hàng mỗi hàng 18 tiếp điểm đánh số là C và D. Đầu nối bus PC chuẩn có chứa các dãy A và B. Trên dãy A có 20 địa chỉ đánh từ A0 đến A19 và 8 đường dẫn dữ liệu D0 đến D7. Dãy B có chứa các đường dẫn ngắt đánh số từ IRQ0 đến IRQ7, các đường cấp nguồn nuôi và các đường dẫn điều khiển khác. Phần rãnh cắm bổ xungbao gồm 2 dãy C và D trên đó có thêm 7 đường dẫn địa chỉ từ A17 đến A23 và các đường dẫn dữ liệu từ D8 đến D15 và các đường dẫn ngắt từ IRQ10 đến IRQ14. Như vậy bus ISA 16 bit có những đặc điểm chính sau: Sử dụng một bus dữ liệu 16 bit từ D0 đến D15. Một bus địa chỉ 24 bit từ A0 đến A23. Tín hiệu giữ nhịp CLK được đặt là 8,33 MHz. Các đường đẫn SMENR và SMEMW dược sử dụng để truyền dữ liệu đối với 1 Mb thấp nhất của bộ nhớ. Cụ thể là từ 0 đến FFFFh. Còn các tín hiệu MENR và MEMW được sử dụng để truyền dữ liệu trong vùng bộ nhớ giữa 1 Mb(FFFFFh) và 16 Mb(FFFFFFh). Chẳng hạn nếu khi đọc từ địa chỉ 001000h thì đường dẫn SMENR được làm cho hoạt động ở mức thấp, trong khi nếu như địa chỉ là 1F0000h thì đường dẫn SMENR được làm cho hoạt động. - 16 -
- 1.4.2. BUS PCI Tác giả của bus PCI (Peripheral Component Interconnection) là công ty Intel. Công ty này đã xây dựng lên một tiêu chuẩn ghép nối mới có tên là bus cục bộ PCI hay thường gọi tắt là bus PCI dùng cho bộ xử lý Pentium. Bus này được thiết kế với chỉ tiêu: Tốc độ hoạt động nhanh. Số bit truyền trên bus cao (64 bit). Mục đích là đẩy nhanh tốc độ truy nhập đáp ứng nhu cầu tăng tốc độ trao đổi dữ liệu giữa bộ nhớ, bộ xử lý, bộ điều khiển đĩa và card màn hình. Một bộ vi mạch ghép nối được sử dụng cho loại bus này là chip PCI 82430 cho phép ghép nối trực tiếp với bus. Đặc điểm: Giống VESA ở chỗ là cùng truyền dữ liệu bằng cách sử dụng đồng hồ hệ thống nhưng lại thể hiện ưu điểm hơn hẳn so với bus VESA là có thể hoạt động ở chế độ trên 32 bit thậm chí cho đến 64 bit. Do tốc độ truyền cao nên trong các máy tính có cấu trúc bus PCI có thể hạn chế các card mở rộng ghép nối xuống còn 2 hoặc 3 rãnh. Thông thường chỉ có card màn hình và card điều khiển đĩa cứng là sử dụng bus PCI. Nếu dữ liệu được truyền trong chế độ 64 bit và ở tốc độ đồng hồ là 33 MHz thì tốc độ truyền dữ liệu cực đại có thể đạt đến 264 Mbyte/s. Để phối hợp khả năng truy nhập của các thiết bị khác nhau lên bus PCI và bus ISA người ta sử dụng một khối gọi là cầu vào ra và bố trí như sau: - 17 -
- Do có thể truyền ở chế độ 64 bit có nghĩa là bus PCI ít nhất phải có 64 đường dẫn dữ liệu. Vì vậy bình thường ở bus PCI có kích thước tăng thêm gấp đôi. Tuy vậy, kích thước thực không thể tăng quá mức và người ta phải giải quyết bằng cách tăng mật độ chân trên 1 đơn vị diện tích. Chính vì lẽ đó mà chân cắm của bus PCI gần nhau hơn và không còn tương thích được với các rãnh cắm PC hoặc ISA. Tốc độ truyền cực đại trên bus này có thể đạt tới 264 Mbyte/s. Tuy vậy, tốc độ này chỉ thực sự đạt được khi dùng phần mềm 64 bit chạy trên hệ thống có chứa bộ xử lý Pentium. Các rãnh cắm PCI đầu tiên được lắp ráp trên mainboard với bộ xử lý 80486, mà bộ xử lý này chỉ sử dụng chế độ hoạt động 32 bit do vậy cũng chỉ đạt đến tốc độ cực đại 132 Mbyte/s. Có thể nói bus PCI là kết quả cải tiến của các bus dùng cho máy tính PC đã có sẵn, nhưng về mặt logic thì khác hẳn với bus ISA và bus VESA. Rãnh cắm PCI có rất nhiều chân: Loại 32 bit có 62 chân trên mỗi hàng và tổng cộng 124 chân. Loại 64 bit có 94 chân x 2=188 chân. Thông thường bộ xử lý Pentium chạy với tốc độ đồng hồ hệ thống là 33MHz hoặc 50MHz. Cần chú ý rằng bus VESA chỉ có thể hoạt động ở tốc độ truyền cực đại ứng với tần số 33MHz. Bởi lẽ mật độ các chân cắm ở rãnh cắm mở rộng PCI và VESA rất cao, cho nên khả năng để tự chế tạo ra các card mở rộng trong điều kiện không chuyên nghiệp để ghép nối với các bus này là rất nhỏ. Vì vậy hai loại bus này không được trình bày chi tiết mặc dù các mainboard được chế tạo gần đây ddều có hai đến ba rãnh cắm mở rộng PCI. 1.4.4. Ghép nối qua khe cắm mở rộng Điều kiện tiến hành: Phải có một bản mạch mở rộng, card phải hoạt động tốt. Phải có phần mềm cài đặt thích hợp để chính thức đăng ký card đó vào trong hệ thống máy tính. Cách giải quyết: Một số loại card mở rộng thông dụng như card modem, card âm thanh, card vào ra thì chọn giải pháp mua là thuận lợi nhất bởi giá thành giảm mà chất lượng lại đảm bảo, lý do là các card đó được sản xuất trong điều kiện công nghiệp số lượng lớn nên giá thành hạ ngoài ra việc kiểm tra xuất xưởng được tiến hành nghiêm chỉnh bởi nhà sản xuất. Với một số mục đích chuyên dụng nghĩa là đối tượng ứng dụng tương đối hẹp và số lượng cần không nhiều thì ta thường chọn giải pháp tự thiết kế và tự làm, ví dụ card dùng trong kỹ thuật đo lường, thu thập số liệu đo lường, card điều khiển đối tượng cụ thể. Có thể về mặt kỹ thuật không phức tạp lắm nhưng ngược lại ta mua thường rất đắt hoặc không thể tìm mua được. Trong kỹ thuật ghép nối thông dụng thường người ta chỉ sử dụng rãnh cắm ISA 8 bit hoặc 16 bit. Trên các bản mạch chính được chế tạo gần đây thường cũng có ba rãnh cắm ISA 16 bit đặt sẵn trên bản mạch chính. Đây chính là chỗ nắp vào các card biến đổi D/A và A/D hoặc là các card để tạo ra các cổng ghép nối khác như tạo ra bus GPIB hoặc RS-485 Sở dĩ bus ISA được dùng nhiều bởi vì nó có cấu trúc cũng như kích thước hình học tương đối đơn giản. Chính vì vậy trong kỹ thuật ghép nối nhiều tài liệu chỉ trình bày đến loại rãnh cắm này CÂU HỎI VÀ BÀI TẬP Câu 1 : Tìm hiểu DTE và DCE và các cách kết nối DTE với DEC Câu 2 : Xác định khuôn dạng dữ liệu và biểu đồ tín hiệu khi truyền ra ngoài thông qua cổng COM chuỗi ký tự : “ACDEF”. Câu 3: Xây dựng thủ tục thiết lập các thông số cổng COM. Câu 4: Tìm hiểu ActiveX để lập trình cổng COM. Câu 5: Tìm hiểu các thanh ghi của bộ UATR 8250 - 18 -
- Câu 6: Tìm hiểu cơ chế lập trình cho UATR 8250. Câu 7 : Tìm hiểu HID trong vấn đề lập trình USB. Câu 8 : Trình bày các bước thiết lập thông số cổng USB Câu 9: Xây dựng thủ tục xác định và định địa cho các thiết bị kết nối với máy tính thông qua cổng USB. Câu 10: Xây dựng thủ tục cho phép gửi dữ liệu ra ngoài qua 1 địa chỉ cổng USB được định trước. Câu 11: Xây dựng thủ tục cho phép nhận dữ liệu từ ngoài vào qua 1 địa chỉ cổng USB được định trước. - 19 -
- Chƣơng 2. BUS GHÉP NỐI ĐA NĂNG 2.1. Đặt vấn đề Một loại Bus được sử dụng nhiều trong các hệ thống đo lường với chất lượng cao là bus ghép nối đa năng, hay còn gọi là bus GPIB (General Purpose Interface Bus). Có thể nói bú GIPS là một hệ bus chuẩn cho phép thiết bị đo của nhều hãng khác nhau cùng ghép nối để hình thành một hệ đo lường, kiểm tra và điều khiển. Ý tưởng khi xây dựng bus IEE-488/GIPS là để kết hợp các thiết bị đo lường kiểm tra dùng trong công nghiệp và thương mại, với các máy tính để hình thành một hệ thống theo những tùy chọn khác nhau, có khả năng thực hiện các quá trình kiểm tra và đo lường dưới sự điểu khiển của chương trình máy tính, thường được viết bằng BASIC. 2.2. Tiêu chuẩn IEEE-488 truyền thông Đối tượng cần kiểm tra Máy phát tín Thiết bị đo Máy đo công Máy đo tần hiệu đa năng suất RF số Giao diện GPIB Máy tính Các mức logic trên bus nói chung đều giống mức TTL : mức thấp nhỏ hơn hoặc bằng 0.8V, trong khi mức cao lớn hơn 2V. Tín hiệu logic có thể được nối với các thiết bị đo qua dây cáp nhiều sơik với chiều dài tổng cộng tới 20m. Thông thường các thiết bị đo phải đặt các nhau ít nhất là 2m. Nếu như các dây cáp đều có chiều dài ở mức thấp nhất thì chiều dài tính ra m của các dây cáp sẽ gấp 2 lần số các thết bị được ghép nối trên hệ thống. Hầu hết các hệ thống IEEE-4888/ GPIB hoạt động bình thường với tốc độ truyền 250 kbyte/s hoặc nhanh hơn nếu chấp nhận 1 số hạn chế cụ thể. Bus GPIB bao gồm 24 đường dẫn, các đường này được nối với đầu nối 24 chân. Các thiết bị đo lường và kiểm tra được dự tính để dùng với bos GPIB đều có lắp sẵn một số đầu nối 24chân ở mặt sau. Đồng thời cũng có 1 chuyển mạch 2 hàng (DIP) để định địa chỉ cho bus GPIB được lắp sau ở mặt sau, thường ở ngay cạnh đầu nôi. Nhiệm vụ của chuyển mạch là đặt địa chỉ nhị phân 5bit, mà thiết bị được định vị trí trong hệ thống, để có thể quyết định : có hoặc không có thiết bị, hoặc chỉ là một thành viên nghe hoặc chỉ là thành viên nói và quy định một số chi tiết cụ thể khác. - 20 -
- 8 đường dữ liệu Các đường tín 3 đường GPIB hiệu bắt tay 5 đường quản lý giao diện Nối đất 2.3. Cấu hình và hoạt động của Bus GPIB Hệ thống IEE – 488/GPIB có thể được chia ra 2 loại cấu hình cơ bản : nối tiếp và hình sao. Các cấu hình dạng này được tạo ra nhờ cách đấu nối dây cáp giữa các thành viên của bus cụ thể (giữa các thiết bị đo lường và máy tính điều khiển). Cấu hình theo kiểu nối tiếp ghép nôi các thiết bị thành một dãy kế tiếp nhau, trong đo đâu nối cho một thiết bị đo tiếp theo được cắm vào đầu nối của một thiết đo đứng trước đấy. Trong cấu hình dạng sao, các thiết bị được nối từ một điểm chung. Các bus trong hệ thốnga IEEE-488/GPIB có thể chia thành 3 loại : bus dữ liệu, bus bắt tay và bus để quản lý. Mỗi đường dẫn trong từưng bus đều có 1 vạch điện tương tự với mạch điện. Ben cạnh điốt bảo vệ mắc song song vào điện dung phân bố ký sinh, cũng có các điện trở nối lên nguồn và nối xuống mass, xác điinh một các có hiệu quả trở kháng lối vòa đã tiêu chuẩn hóa. - 21 -
- Vcc Bộ điều khiển BUS Bộ nhận Được nối tới đường bus là các mạch điện của thành viên nhận và các mạch điện của bộ điều khiển. Các mạch này tương tự với các phần tử logic TTL, bảo đảm việc nhập vào và xuất dữ liệu ra các thiết bị đo. Bộ điều khiển có một lối ra đấu vào bus và được thiết kê trên cơ sở một kinh kiện 3 trạng thái. Linh kiện đó sẽ khôngphản ứng gì cho đến khi có lệnh đóng mạch. Như vậy, lối ra 3 trạng thái sẽ trôi nổi ở trở kháng cao cho đến khi được đóng mạch. Bộ nhận là 1 bộ đệm không đảo với lối vào trở kháng cao. Cách bố trí của các bộ điều khiển và các bộ nhận theo cách này bảo đảm có đựoc nhờ tải thấp từ bus và đây là lý do vì sao có thể đấu nhiều mạch tải vào một đường bus. CÂU HỎI VÀ BÀI TẬP 1. Trình bày tiêu chuẩn IEEE-488 truyền thông 2. Trình bày cấu hình và hoạt động của Bus GPIB - 22 -
- Chƣơng 3. VÒNG ĐO ĐIỆN ÁP 3.1.Truyền dữ liệu bằng vòng dòng điện Thay cho việc dùng mức đienẹ áp, việc truyền dữ liệu còn có thể được tiến hành nhờ sự chuyển mức dòng điện (thay đổi giá trị dòng điện). Có thể tìm hiểu vòng dòng điện thông qua ví dụ vụ thể là vòng dòng điện 20 mA. Giao diện vòng dòng 20 mA ra đời trước khi RS-232 được xem là một tiêu chuẩn. Giao diện này còn được gọi là giao diện TTY hoặc thường được gọi là vòng dòng điện, mô tả trạng thái login qua tác động cho không cho 1 dòng điên với cượng độ 20mA đi qua, nghĩa là việc gửi dữ liệu có thể quan niệm 1 cách đơn giản như việc đóng mạch để cho dòng đienẹ chạy qua. Giao diện dòng 20mA được chia thành 2 phần : chủ động (có nguồn dòng không đổi 20 mA) và bị động ( nguồn dòng không đổi 20 mA được tạo ra ở phía thiết bị ghép nối). Như vậy, bao giờ cũng một trong các thành viên kia là bị động. Để có thể chủ động tạo thành một mạch kín đối với dòng điện loại giao diện dòng 20 mA dùng cho máy tính PC có chứa 1 bộ biến đổi DC/DC, qua đó giao diện cung cấp năg lượng ở 2 chân nối để các vòng gửi và nhận có thể hoạt động Ở giao diện dòng 20 mA có những tín hiệu sau : - TxD (+) dữ liệu gửi (đường dẫn về) - TxD (-) dữ liệu gửi (đường dẫn đi) - RxD (+) dữ liệu nhận (đường dẫn đi) - RxD (-) dữ liệu nhận (đường dẫn về) Thông thường thì ở giao diện dòng 20 mA không có tín hiệu dùng để bắt tay khi thiết lập đường truyền. Với giao diện này, việc truyền dữ liệu trên khoảng cách cỡ 1.000m hoàn toàn có thể thực hiện được bởi vì nhiễu sinh ra trên đường truyển ảnh hưởng cảm ứng lên cả đường dẫn tín hiệu đi cũng như đến và do vậy bị loại trừ. Muốn thế đường dẫn đi và đường dẫn về phải đặt sát nhau, sao cho khi một tín hiệu nhiễu xuất hiện thì cùng ảnh hưởng lên cả 2 đường tín hiếu, chẳng hạn có thể dùng loại 2 dây xoắn với nhau làm đường truyền. Tất nhiên là với cách giao tiếp này không thể có được tốc độ truyền cao. 3.2. Vòng dòng điện 60mA Hệ thống dòng 60 mA được mô tả theo hình vẽ dưới cho thấy một trong các máy điện báo in chữ có thể được nối với cổng lối ra nối tiếp tương thích TTL như thế nào. Trong nhiêu trường hợp, một bit của một cổng song song sẽ được cấu hình như 1 cổng nối tiếp thông qua hoặc là phần mềm hoặc là bổ sung thêm cho phần cứng. Bit có thấp nhất (LSB) của cổng song song được chỉ định như đầu ra nối tiếp. Mức TTL tù cổng ra nối tiếp điều khiển cực gốc của tranzito công suất NPN, chịu điện áp cao. Hai cực góp phát của tranzito được đấu nối tiếp với vòng dòng điện 60 mA và như vậy nó hoạt động như một chuyển mạch (công tắc). Khi mức TTL là HIGH, tranzito T1 mở và dòng điện chạy trong vòng. Ngược lại, khi bit TTL là LOW, tranzito chuyển sang trạng thái cấm và sẽ không có dòng điện đi qua mạch. Do đó, tranzito cung cấp một mức logic 1, khi bit TTL là HIGH, mức logic 0 khi là LOW. Vòng dòng điện được nuôi từ nguồn một chiều 120 – 140 V, có một biến trở điều chình được mắc nối tiếp, đuwocj sử dụng để đặt gần đúng mức dòng điện. Mức dòng điện trong vòng đienẹ 60mA được điều chỉnh bằng cách ngắt vòng và chèn vào mạch một mili ampe kế với thang đo 0 – 100 mA. Một phím sẽ được nhấn trên bàn phím, mộtmức HIGH phải được viết vào cổng lối ra nối tiếp. Tác động này sẽ đóng mạch vòng và cho phép dòng đi qua. Chiểt áp R2, được nối với biến trở, khi đó sẽ tiến hành điều chỉnh cho dòng điện đi qua xấp xỉ 60mA - 23 -
- X Máy điện báo 60 WPM R1 220 Ω T1 D1 MJE340 IN4007 R2 Cổng lối ra Nguồn nuôi TTL, LBS 130 V DC Khi dòng 60 mA vhạt qua các cuộn dây sẽ tạo ra một từ trường xung quanh từng cuộn. Khi bất ngờ làm gián đoạn dòng điện sẽ làm cho từ trường giảm đột ngột và xuất hiện 1 xung điện áp cao do hiện tượng cảm ứng điện từ. Kết quà là xung điện áp này co thể làm hỏng các linh kiện bán dẫn và ta phải nghĩ đên khả năng đưa ra các biện pháp bảo vệ. Chức năng này được điốt D1 đảm nhiệm, điốt này là loại chỉnh lưu có điện áp ngược tính theo đỉnh bằng 1000V (PIV). Bình thường điốt D1 được thiên áp ngược, chỉ trừ khi xung điện áp xuất hiện này mới bị phân cực thuận và dập tắ ngay xung điẹn này trước khi nó kịp gây hại. 3.3. Vòng dòng điện 20mA +5 V DC R1 220 Ω IC 1 + D1 Lối ra 20 mA IN400 - 7 Dữ liệu đầu vào U1 Chuẩn vong dòng đienẹ mới hơn đã sử dụng dong điện với cường độ 20 mA chomức logic 1 và dòng điện 0 cho đên 2mA cho mức logic 0. Vòng dòng điẹn 20mA đã được sử dụng trên máy điện báo in chứ Model 33 cà ttát cả các kiều máy kế tiếp. Các máy sử dụng dòng 20mA đều sử dụng mã ASCII. Hình trên chỉ ra 1 phương pháp đơn giản cho phép sử dụng bộ ghép nối quang để ghép nối cổng truyền nối tiếp của máy tính với một vòng dòng điên 20 mA. Khi lối vào dữ liệu là HIGH, có nghĩa 1 trạng thái đánh dấu mức logic 1, thì lối ra của bộ đảo cực góp hở (U1) sẽ - 24 -
- chuyển sang mức LOW, do đó cực âm của điốt phát quang sẽ nối đất. Tác động này sẽ làm mở tranzito, và cho phép dòng điện đi qua mạch. Lại một lần nữa, một điốt hoạt động trong chế độ phân cực ngược được sử dụng để ngăn ngừa hỏng hóc và các phiền phức khác gây ra bởi xung điện cảm ứng phát sinh khi các cuộn dây phóng điện. 3.4. Vòng dòng điện 4 đến 20mA Máy ghi Anlalog Máy ghi Anlalog Máy ghi Anlalog Vòng dòng 4 - 20 mA Vin 0 Bộ biến đổi điện áp ra dòng điện Trong kỹ thuật điểu khiển các quá trình công nghiệp, người ta thường sử dụng hệ thống vòng dòng điển để truyền các số liệu đo lường. Hình trên thể hiện 1 hệ thống tiêu biểu, trong đó 3 thiết bị khác nhau thực hiện nhiệm vụ trong cùng 1 vòng dòng điện. Trên một số bộ chỉ thị dòng điẹn dưới dạng số đang lưu hành trên thị trường, ta thấy dải đo không phait là 0-20 mA mà là 4-20 mA. Các bộ chỉ thị này cho phép từ 4 mA đến 20 mA. Mục đích của việc sử dụng vòng dòng điện này là truyền các giá trị nằm trong 1 vùng, mô tả các thông số đang được đo. Toàn bộ vùng có độ rộng là 10 mA, nhưng do việc chọn giá trị nhỏ nhất là 4 mA có thể tăng dòng điện cực đại đên 20 mA. Nguyên nhân của sự lệch, và cung là một trong những ưu điểm của vòng dòng điện 4-20 mA so với các vòng dòng điện khác là trạng thái lối vào 0 được biểu diễn bởi 1 dòng điện khác 0, cụ thể là 4 mA. Do đó , trong vòng dòng điện 4 - 20 mA có thể dễ dàng phân biệt giữa 1 giá trị tham số 0 và trạng thái dòng điện bằng 0 do có sự cố trên mạch vòng (chập mạch hoặc đứt mạch) làm mất đi tín hiệu dòng điện. CÂU HỎI VÀ BÀI TẬP 1. Trình bày vòng dòng điện 60mA 2. Trình bày vòng dòng điện 20mA 3. Trình bày vòng dòng điện 4 đến 60mA - 25 -
- Chƣơng 4. CÁC MẠCH ĐIỀU KHIỂN VỚI BỘ BIẾN ĐỔI A/D 4.1. Card biến đổi A/D 12 bit dùng ICL7107 Nhiều người sử dụng máy tính quan tâm đến ứng dụng trong đo lường và điều khiển, nhưng để bắt tay vào công việc cần có thêm những phần cứng thích hợp, đóng vai trò ghép nối trung gian giữa máy tính và phần cứng bên ngoài. Một bộ phận không thể thiếu được là card biến đổi A/D và D/A mà lý do đơn giản là các tín hiệu mô tả lệnh, trạng thái hoặc dữ liệu trong máy tính đều tồn tại dưới dạng số. Các thông số đặc trưng : - Cho phép thực hiện 8 phép đo trong 1 giây khi hoạt động trong chế độ 1 kênh. Trong chế độ 8 kênh thì mỗi phép đo một giây. - Cung cấp các giá trị đo trong vùng từ -1999 đến +1999. - Độ phân giải tương ứng với 12 bit, nghĩa là 4096 bước hoặc ± 2048 bước. - Có khả năng nhận dạng trạng thái vượt quá giới hạn đo. - Có lối vào vi phân, cụ thể là có thể đo điện áp giữa 2 lối vào analog. Card được mở rộng sao cho sau khi kết thúc 1 quá trình biến đổi A/D thì một ngắt được xóa và chương trình chạy trên máy tính có thể xử lý ngay giá trị đo, ngoài ra việc thu thập kết quả đo lường có thể tiến hành ngay sau máy tính, nghĩa là trong khi máy tính thực hiệ các công việc khác. Sơ đồ khối : Bộ đệm Điện áp bus so sánh . . . . + In + Khối Bộ biến đổi điều A/D khiển us PC 8 bit 8 PC us In - . . . . - B logic và giải mã địa chỉ Điện áp nuôi nguồn 4.2. Card biến đổi A/D 12 bit dùng ADC547 Ưu điểm của ADC 547 : - Điện trở lối vào lớn - Vùng điện áp lối vào rất rộng - Khả năng đinh địa chỉ phong phú - Tất cả các tác động đều được điều khiển bằng phần mềm - Giá thành không cao - 26 -
- - Mạch điện có độ phức tạp vừa phải Các thông số đặc trưng : - Có khả năng ghép nối qua khe cắm PC - Bộ biến đổi A/D có 12 bỉt - Thời gian biến đổi 25 micro giây - Có 16 lối vào hoạt động ở chế độ dồn kênh - Điện áp lối vào 0 – 5 +V hoặc -2V - + 2V - Có điện áp so sánh 10v bên trong - Địa chỉ cơ bản của card và vùng điện áp lối vào được đặt bằng cầu nối (jumper) - Điều khiển các quá trình trên card bằng PPI phổ dụng 8255 - Có 8 lối vào/ra với mức analog - Dòng điện tiêu thụ 200 mA lấy từ khe cẳm mở rộng của máy tính 4.3. Card biến đổi ADA 9-16 bit Card ADA 9-16bit có 8 lối vào và 8 lối ra cho phép card mở rộng có thể sử dụng trong nhiều mục đích đo lường và điều khiển với độ chinh xác cao. Các đặc điểm chính : - Độ phân giải cao : 9- 16 bit - Độ chính xác cao nhâtl à 0.05% khi tốc độ biến đổi là 4 phép đo mỗi giây - Bằng khả năng lập trình, có thể ấn đinh độ phân giải bằng 9 bit, khi tốc độ biến đổi cỡ 500 phép đo mỗi giây. Trước khi đến bộ biến đổi A/D, tín hiệu qua bộ dồn kênh với 8 kênh, vì thế có tổng cộng đến 8 điện áp lối vào có thể xử lý được. Khi xuất ra, bộ biến đôi ADA 16 có một biến đổi số / tương tự với độ phân giải 12 bit và độ chính xác là 0.025%, được mở rộng bằng một mạch lấy mẫu và giữ. Như vậy có tổng cộng 8 điện áp lối vào được xử lý cũng như 8 điện áp analog được xuất ra. Các dải điện áp đều nằm trong vùng -2v đến + 2v. Sơ đồ khối : Mạch điện của card biến đổi ADA 9-16 bit có 3 phần với 3 chức năng khác nhau : - Bộ giải mã địa chỉ và đệm dữ liệu - Bộ biến đổi tương tự/ số cùng với bộ dồn kênh đặt ở phía trước - Bộ biến đổi số/ tương tự cùng với bộ dồn kênh/ đệm đặt ở phía sau Bộ giải mã địa chỉ vào/ra giải mã 4 địa chỉ vào/ra kế tiếpnhau để điều khiển các linh kiện khác nhau của card ghép nối. Ngoài ra, bộ giải mã này còn điều khiển việc chuyển hướng dùng cho bộ đệm bus dữ liệu, nối các đường dẫn dữ liệu của máy tính với các đường dẫn dữ liểu của bộ biến đổi của A/D cũng như D/A - 27 -
- -2 V . . . 0 V . . . + 2 V -2 V . . . 0 V . . . + 2 V Bộ dồn kênh Bộ dồn kênh Bộ Bộ biến đổi A/D có phân điều khiển giải Bộ biến đổi D/A Bộ giải mã địa chỉ và đệm dữ liệu Bus máy tính Phần thứ 2 là bộ biến đổi tương tự/số được bố trí ở sau bộ dồn kênh 8 lôi vòa, ngoài ra còn có mạch điện điều chỉnh độ phân giải cho phép ấn định độ chính xác của bộ biến đổi trong từng trường hợp cụ thể. Độ chính xác càng cao thì số lượng phép đo được thực hiện trong một đơn vị thời gian càng nhỏ. Để có độ phân giải là 16 bit thì thời gian biến đổi cho mỗi giá trị đo cỡ 260 ms, tương ứng tốc độ xử lý là 4 phép đo mỗi giây. Khi chọn độ phân giải bằng 9 bit có tới cỡ 500 phép đo được thực hiện trong 1 giây. Tám kênh lối vào được xử lý kế tiếp nhau qua bộ dồn keenh và được đánh giá định lượng bằng bộ biến đổi A/D CÂU HỎI VÀ BÀI TẬP 1. Trình bày Card biến đổi A/D 12 bit dùng ICL7107 2. Trình bày Card biến đổi A/D 12 bit dùng ADC547 3. Trình bày Card biến đổi ADA 9-16 bit - 28 -
- Chƣơng 5. TỰ ĐỘNG HÓA VỚI PCL S7-200 5.1. Bộ điều khiển khả trình PCL Hình thành từ nhóm các kỹ sư hãng General Motors năm 1968 với ý tưởng ban đầu là thiết kế một bộ điều khiển thỏa mãn các yêu cầu sau: - Lập trình dễ dàng, ngôn ngữ lập trình dễ hiểu. - Dễ dàng sửa chữa thay thế. - Ổn định trong môi trường công nghiệp. - Giá cả cạnh tranh. Thiết bị điều khiển logic khả trình (PLC: Programmable Logic Control) là loại thiết bị cho phép thực hiện linh hoạt các thuật toán điều khiển số thông qua một ngôn ngữ lập trình, thay cho việc thể hiện thuật toán đó bằng mạch số. Như vậy, với chương trình điều khiển trong mình, PLC trở thành bộ điều khiển số nhỏ gọn, dễ thay đổi thuật toán và đặc biệt dễ trao đổi thông tin với môi trường xung quanh (với các PLC khác hoặc với máy tính). Toàn bộ chương trình điều khiển được lưu nhớ trong bộ nhớ PLC dưới dạng các khối chương trình (khối OB, FC hoặc FB) và thực hiện lặp theo chu kỳ của vòng quét. Để có thể thực hiện được một chương trình điều khiển, tất nhiên PLC phải có tính năng như một máy tính, nghĩa là phải có một bộ vi xử lý (CPU), một hệ điều hành, bộ nhớ để lưu chương trình điều khiển, dữ liệu và các cổng vào/ra để giao tiếp với đối tượng điều khiển và trao đổi thông tin với môi trường xung quanh. Bên cạnh đó, nhằm phục vụ bài toán điều khiển số, PLC còn cần phải có thêm các khối chức năng đặc biệt khác như bộ đếm (Counter), bộ định thì (Timer) và những khối hàm chuyên dụng. - 29 -
- 5.2. Soạn thảo chƣơng trình với PCL Các loại PLC nói chung thường có nhiều ngôn ngữ lập trình nhằm phục vụ các đối tượng sử dụng khác nhau. PLC S7-300 có 5 ngôn ngữ lặp trình cơ bản. Đó là: Ngôn ngữ “hình thang”, ký hiệu là LAD (Ladder logic). Đây là ngôn ngữ đồ hoạ thích hợp với những người quen thiết kế mạch logic. - 30 -
- Ngôn ngữ “liệt kê lệnh”, ký hiệu là STL (Statement list). Đây là dạng ngôn ngữ lập trình thông thường của máy tính. Một chương trình được ghép gởi nhiều câu lệnh theo một thuật toán nhất định, mỗi lệnh chiếm một hàng và đều có cấu trúc chung là “tên lệnh” + “toán hạng”. Ngôn ngữ “hình khối”, ký hiệu là FBD (Function Block Diagram). Đây cũng là ngôn ngữ đồ hoạ thích hợp với những người quen thiết kế mạch điều khiển số. Ngôn ngữ GRAPH. Đây là ngôn ngữ lập trình cấp cao dạng đồ hoạ. Cấu trúc chương trình rõ ràng, chương trình ngắn gọn. Thích hợp cho người trong ngành cơ khí vốn quen với giản đồ Grafcet của khí nén. - 31 -
- Ngôn ngữ HIGH GRAPH. CÂU HỎI VÀ BÀI TẬP 1. Trình bày Bộ điều khiển khả trình PCL 2. Thực hành lập trình PLC - 32 -
- Chƣơng 6. HỌ VI ĐIỀU KHIỂN 8951 6.1. Cấu trúc phần cứng 8951 có tất cả 40 chân có chức năng như các đường xuất nhập. Trong đó có 24 chân có tác dụng kép (có nghĩa là 1 chân có 2 chức năng), mỗi đường có thể hoạt động như đường xuất nhập hoặc như đường điều khiển hoặc là thành phần của các bus dữ liệu và bus địa chỉ. Các Port: U2 39 21 38 P0.0/AD0 P2.0/A8 22 37 P0.1/AD1 P2.1/A9 23 36 P0.2/AD2 P2.2/A10 24 35 P0.3/AD3 P2.3/A11 25 34 P0.4/AD4 P2.4/A12 26 33 P0.5/AD5 P2.5/A13 27 32 P0.6/AD6 P2.6/A14 28 P0.7/AD7 P2.7/A15 1 10 2 P1.0 P3.0/RXD 11 3 P1.1 P3.1/TXD 12 4 P1.2 P3.2/INTO 13 5 P1.3 P3.3/INT1 14 6 P1.4 P3.4/TO 15 7 P1.5 P3.5/T1 16 8 P1.6 P3.6/WR 17 P1.7 P3.7/RD 19 29 18 XTAL1 PSEN 9 XTAL2 30 RST ALE/PROG 31 EA/VPP AT89C51 Port 0: Port 0 là port có 2 chức năng ở các chân 32 - 39 của 8951. Trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường I/O. Đối với các thiết kế cỡ lớn có bộ nhớ mở rộng, nó được kết hợp giữa bus địa chỉ và bus dữ liệu. Port 1: Port 1 là port I/O trên các chân 1-8. Các chân được ký hiệu P1.0, P1.1, p1.2, p1.7 có thể dùng cho giao tiếp với các thiết bị ngoài nếu cần. Port 1 không có chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với các thiết bị bên ngoài. Port 2: Port 2 là 1 port có tác dụng kép trên các chân 21- 28 được dùng như các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng. - 33 -
- Port 3: Port 3 là port có tác dụng kép trên các chân 10-17. Các chân của port này có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tính đặc biệt của 8951 như ở bảng sau: Bit Tên Chức năng chuyển đổi P3.0 RXT Ngõ vào dữ liệu nối tiếp. P3.1 TXD Ngõ xuất dữ liệu nối tiếp. P3.2 INT0\ Ngõ vào ngắt cứng thứ 0 P3.3 INT1\ Ngõ vào ngắt cứng thứ 1 P3.4 T0 Ngõ vào củaTIMER/COUNTER thứ 0. P3.5 T1 Ngõ vào củaTIMER/COUNTER thứ 1. P3.6 WR\ Tín hiệu ghi dữ liệu lên bộ nhớ ngoài P3.7 RD\ Tín hiệu đọc bộ nhớ dữ liệu ngoài. Các ngõ tín hiệu điều khiển: Ngõ tín hiệu PSEN (Program store enable): PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương trình mở rộng thường được nối đến chân OE\ (output enable) của Eprom cho phép đọc các byte mã lệnh. PSEN ở mức thấp trong thời gian Microcontroller 8951 lấy lệnh. Các mã lệnh của chương trình được đọc từ Eprom qua bus dữ liệu và được chốt vào thanh ghi lệnh bên trong 8951 để giải mã lệnh. Khi 8951 thi hành chương trình trong EPROM nội PSEN sẽ ở mức logic 1. Ngõ tín hiệu điều khiển ALE (Address Latch Enable) Khi 8951 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ và bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt. Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động. Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể được dùng làm tín hiệu clock cho các phần khác của hệ thống. Chân ALE được dùng làm ngõ vào xung lập trình cho EPROM trong 8951. Ngõ tín hiệu EA\(External Access): Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0. Nếu ở mức 1, 8951 thi hành chương trình từ EPROM nội trong khoảng địa chỉ thấp 4 Kbyte. Nếu ở mức 0, 8951 sẽ thi hành chương trình từ bộ nhớ mở rộng. Chân EA\ được lấy làm chân cấp nguồn 12V khi lập trình cho Eprom trong 8951. Ngõ tín hiệu RST (Reset) : Ngõ vào RST ở chân 9 là ngõ vào Reset của 8951. Khi ngõ vào tín hiệu này đưa lên cao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống. Khi cấp điện mạch tự động Reset. Các ngõ vào bộ dao động X1,X2: Bộ dao động được được tích hợp bên trong 8951, khi sử dụng 8951 người thiết kế chỉ cần kết nối thêm thạch anh và các tụ như hình vẽ trong sơ đồ. Tần số thạch anh thường sử dụng cho 8951 là 12Mhz. Chân 40 (Vcc) được nối lên nguồn 5V. - 34 -
- 6.2. Tập lệnh Tập lệnh họ MSC-51 được sự kiểm tra của các mode định vị và các lệnh của chúng có các Opcode 8 bit. Điều này cung cấp khả năng 28= 256 lệnh được thi hành và một lệnh không được định nghĩa. Vài lệnh có 1 hoặc 2 byte bởi dữ liệu hoặc địa chỉ thêm vào Opcode. Trong toàn bộ các lệnh có 139 lệnh 1 byte, 92 lệnh 2 byte và 24 lệnh 3 byte. Các mode định vị (Addressing Mode) : Các mode định vị là một bộ phận thống nhất của tập lệnh. Chúng cho phép định rõ nguồn hoặc nơi gởi tới của dữ liệu ở các đường khác nhau tùy thuộc vào trạng thái của người lập trình. 8951 có 8 mode định vị được dùng như sau: · Thanh ghi. · Trực tiếp. · Gián tiếp. · Tức thời. · Tương đối. · Tuyệt đối. · Dài. · Định vị. Các kiểu lệnh (Instruction Types): 8951 chia ra 5 nhóm lệnh chính: Các lệnh số học. ADD A, ADD A, Rn : (A) (A) + (Rn) ADD A, direct : (A) (A) + (direct) ADD A, @ Ri : (A) (A) + ((Ri)) ADD A, # data : (A) (A) + # data ADDC A, Rn : (A) (A) + (C) + (Rn) ADDC A, direct : (A) (A) + (C) + (direct) ADDC A, @ Ri : (A) (A) + (C) + ((Ri)) ADDC A, # data : (A) (A) + (C) + # data SUBB A, SUBB A, Rn : (A) (A) - (C) - (Rn) SUBB A, direct : (A) (A) - (C) - (direct) SUBB A, @ Ri : (A) (A) - (C) - ((Ri)) SUBB A, # data : (A) (A) - (C) - # data INC INC A : (A) (A) + 1 INC direct : (direct) (direct) + 1 INC Ri : ((Ri)) ((Ri)) + 1 INC Rn : (Rn) (Rn) + 1 INC DPTR : (DPTR) (DPTR) + 1 DEC DEC A : (A) (A) - 1 DEC direct : (direct) (direct) - 1 - 35 -
- DEC @Ri : ((Ri)) ((Ri)) - 1 DEC Rn : (Rn) (Rn) - 1 MULL AB : (A) LOW [(A) x (B)];có ảnh hưởng cờ OV : (B) HIGH [(A) x (B)];cờ Cary được xóa. DIV AB : (A) Integer Result of [(A)/(B)]; cờ OV : (B) Remainder of [(A)/(B)]; cờ Carry xóa DA A :Điều chỉnh thanh ghi A thành số BCD đúng trong phép cộng BCD (thường DA A đi kèm với ADD, ADDC) Nếu [(A3-A0)>9] và [(AC)=1] (A3A0) (A3A0) + 6. Nếu [(A7-A4)>9] và [(C)=1] (A7A4) (A7A4) + 6. Lệnh logic. Tất cả các lệnh logic sử dụng thanh ghi A như là một trong những toán hạng thực thi một chu kỳ máy, ngoài A ra mất 2 chu kỳ máy. Những hoạt động logic có thể được thực hiện trên bất kỳ byte nào trong vị trí nhớ dữ liệu nội mà không qua thanh ghi A. Các hoạt động logic được tóm tắt như sau: ANL ANL A, Rn : (A) (A) AND (Rn). ANL A, direct : (A) (A) AND (direct). ANL A,@ Ri : (A) (A) AND ((Ri)). ANL A, # data : (A) (A) AND (# data). ANL direct, A : (direct) (direct) AND (A). ANL direct, # data : (direct) (direct) AND # data. ORL ORL A, Rn : (A) (A) OR (Rn). ORL A, direct : (A) (A) OR (direct). ORL A,@ Ri : (A) (A) OR ((Ri)). ORL A, # data : (A) (A) OR # data. ORL direct, A : (direct) (direct) OR (A). ORL direct, # data : (direct) (direct) OR # data. XRL XRL A, Rn : (A) (A) (Rn). XRL A, direct : (A) (A) (direct). XRL A,@ Ri : (A) (A) ((Ri)). XRL A, # data : (A) (A) # data. XRL direct, A : (direct) (direct) (A). XRL direct, # data : (direct) (direct) # data. CLR A : (A) 0 CLR C : (C) 0 CLR Bit : (Bit) 0 RL A : Quay vòng thanh ghi A qua trái 1 bit (An + 1) (An); n = 06 (A0) (A7) RLC A : Quay vòng thanh ghi A qua trái 1 bit có cờ Carry - 36 -
- (An + 1) (An); n = 06 (C) (A7) (A0) (C) RR A : Quay vòng thanh ghi A qua phải 1 bit (An + 1) (An); n = 06 (A0) (A7) RRC A : Quay vòng thanh ghi A qua phải 1 bit có cờ Carry (An + 1) (An); n = 06 (C) (A7) (A0) (C) SWAP A : Đổi chỗ 4 bit thấp và 4 bit cao của A cho nhau (A3A0)(A7A4). Dịch chuyển dữ liệu. Các lệnh dịch chuyển dữ liệu trong những vùng nhớ nội thực thi 1 hoặc 2 chu kỳ máy. Mẫu lệnh MOV , cho phép di chuyển dữ liệu bất kỳ 2 vùng nhớ nào của RAM nội hoặc các vùng nhớ của các thanh ghi chức năng đặc biệt mà không thông qua thanh ghi A. Vùng Ngăn xếp của 8951 chỉ chứa 128 byte RAM nội, nếu con trỏ Ngăn xếp SP được tăng quá địa chỉ 7FH thì các byte được PUSH vào sẽ mất đi và các byte POP ra thì không biết rõ. Các lệnh dịch chuyển bộ nhớ nội và bộ nhớ ngoại dùng sự định vị gián tiếp. Địa chỉ gián tiếp có thể dùng địa chỉ 1 byte (@ Ri) hoặc địa chỉ 2 byte (@ DPTR). Tất cả các lệnh dịch chuyển hoạt động trên toàn bộ nhớ ngoài thực thi trong 2 chu kỳ máy và dùng thanh ghi A làm toán hạng DESTINATION. Việc đọc và ghi RAM ngoài (RD và WR) chỉ tích cực trong suốt quá trình thực thi của lệnh MOVX, còn bình thường RD và WR không tích cực (mức 1). Tất cả các lệnh dịch chuyển đều không ảnh hưởng đến cờ. Hoạt động của từng lệnh được tóm tắt như sau: MOV A,Rn : (A) (Rn) MOV A, direct : (A) (direct) MOV A, @ Ri : (A) ((Ri)) MOV A, # data : (A) # data MOV Rn, A : (Rn) (A) MOV Rn, direct : (Rn) (direct) MOV Rn, # data : (Rn) # data MOV direct, A : (direct) (A) MOV direct, Rn : (direct) (Rn) MOV direct, direct : (direct) (direct) MOV direct, @ Ri : (direct) ((Ri)) MOV direct, # data : (direct) data MOV @ Ri, A : ((Ri)) (A) MOV @ Ri, direct : ((Ri)) (direct) MOV @ Ri, # data : ((Ri)) # data MOV DPTR, # data16 : (DPTR) # data16 MOV A, @ A + DPTR : (A) (A) + (DPTR) - 37 -
- MOV @ A + PC : (PC) (PC) + 1 (A) (A) + (PC) MOVX A, @ Ri : (A) ((Ri)) MOVX A, @ DPTR : (A) ((DPTR)) MOVX @ Ri, A : ((Ri)) (A) MOVX @ DPTR, A : ((DPTR)) (A) PUSH direct : Cất dữ liệu vào Ngăn xếp (SP) (SP) + 1 (SP) (Drirect) POP direct : Lấy từ Ngăn xếp ra direct (direct) ((SP)) (SP) (SP) - 1 XCH A, Rn : Đổi chỗ nội dung của A với Rn (A) (Rn) XCH A, direct : (A) (direct) XCH A, @ Ri : (A) ((Ri)) XCHD A, @ Ri : Đổi chỗ 4 bit thấp của (A) với ((Ri)) (A3A0) ((Ri3Ri0)) Lý luận. 8951 chứa một bộ xử lí luận lý đầy đủ cho các hoạt động bit đơn, đây là một điểm mạnh của họ vi điều khiển MSC-51 mà các họ vi điều khiển khác không có. RAM nội chứa 128 bit đơn vị và các vùng nhớ các thanh ghi chức năng đặc biệt cấp lên đến 128 đơn vị khác. Tất cả các đường Port là bit định vị, mỗi đường có thể được xử lí như Port đơn vị riêng biệt. Cách truy xuất các bit này không chỉ các lệnh rẽ nhánh không, mà là một danh mục đầy đủ các lệnh MOVE, SET, CLEAR, COMPLEMENT, OR, AND. Toàn bộ sự truy xuất của bit dùng sự định vị trực tiếp với những địa chỉ từ 00H - 7FH trong 128 vùng nhớ thấp và 80H - FFH ở các vùng thanh ghi chức năng đặc biệt. Bit Carry C trong thanh ghi PSW\ của từ trạng thái chương trình và được dùng như một sự tích lũy đơn của bộ xử lí luận lý. Bit Carry cũng là bit định vị và có địa chỉ trực tiếp vì nó nằm trong PSW. Hai lệnh CLR C và CLR CY đều có cùng tác dụng là xóa bit cờ Carry nhưng lệnh này mất 1 byte còn lệnh sau mất 2 byte. Hoạt động của các lệnh luận lý được tóm tắt như sau: CLR C : Xóa cờ Carry xuống 0. Có ảnh hưởng cờ Carry. CLR BIT : Xóa bit xuống 0. Không ảnh hưởng cờ Carry SET C : Set cờ Carry lên 1. Có ảnh hưởng cờ Carry. SET BIT : Set bit lên 1. Không ảnh hưởng cờ Carry. CPL C : Đảo bit cờ Carry. Có ảnh hưởng cờ Carry. CPL BIT : Đảo bit. Không ảnh hưởng cờ Carry. ANL C, BIT : (C) (C) AND (BIT) : Có ảnh hưởng cờ Carry. ANL C, /BIT : (C) (C) AND NOT (BIT):Không ảnh hưởng cờ Carry. ORL C, BIT : (C) (C) OR (BIT) : Tác động cờ Carry. ORL C, /BIT : (C) (C) OR NOT (BIT) : Tác động cờ Carry. - 38 -
- MOV C, BIT : (C) (BIT) : Cờ Carry bị tác động. MOV BIT, C : (BIT) (C) : Không ảnh hưởng cờ Carry. Rẽ nhánh chương trình. Có nhiều lệnh để điều khiển lên chương trình bao gồm việc gọi hoặc trả lại từ chương trình con hoặc chia nhánh có điều kiện hay không có điều kiện. Tất cả các lệnh rẽ nhánh đều không ảnh hưởng đến cờ. Ta có thể định nhản cần nhảy tới mà không cần rõ địa chỉ, trình biên dịch sẽ đặt địa chỉ nơi cần nhảy tới vào đúng khẩu lệnh đã đưa ra. Sau đây là sự tóm tắt từng hoạt động của lệnh nhảy. JC rel : Nhảy đến “rel” nếu cờ Carry C = 1. JNC rel : Nhảy đến “rel” nếu cờ Carry C = 0. JB bit, rel : Nhảy đến “rel” nếu (bit) = 1. JNB bit, rel : Nhảy đến “rel” nếu (bit) = 0. JBC bit, rel : Nhảy đến “rel” nếu bit = 1 và xóa bit. ACALL addr11: Lệnh gọi tuyệt đối trong page 2K. (PC) (PC) + 2 (SP) (SP) + 1 ((SP)) (PC7PC0) (SP) (SP) + 1 ((SP)) (PC15PC8) (PC10PC0) page Address. LCALL addr16: Lệnh gọi dài chương trình con trong 64K. (PC) (PC) + 3 (SP) (SP) + 1 ((SP)) (PC7PC0) (SP) (SP) + 1 ((SP)) (PC15PC8) (PC) Addr15Addr0. RET : Kết thúc chương trình con trở về chương trình chính. (PC15PC8) (SP) (SP) (SP) - 1 (PC7PC0) ((SP)) (SP) (SP) -1. RETI : Kết thúc thủ tục phục vụ ngắt quay về chương trình chính hoạt động tương tự như RET. AJMP Addr11 : Nhảy tuyệt đối không điều kiện trong 2K. (PC) (PC) + 2 (PC10PC0) page Address. LJMP Addr16 : Nhảy dài không điều kiện trong 64K Hoạt động tương tự lệnh LCALL. SJMP rel :Nhảy ngắn không điều kiện trong (-128127) byte (PC) (PC) + 2 (PC) (PC) + byte 2 - 39 -
- JMP @ A + DPTR:Nhảy không điều kiện đến địa chỉ (A) + (DPTR) (PC) (A) + (DPTR) JZ rel : Nhảy đến A = 0. Thực hành lệnh kế nếu A 0. (PC) (PC) + 2 (A) = 0 (PC) (PC) + byte 2 JNZ rel : Nhảy đến A 0. Thực hành lệnh kế nếu A = 0. (PC) (PC) + 2 (A) 0 (PC) (PC) + byte 2 CJNE A, direct, rel : So sánh và nhảy đến A direct (PC) (PC) + 3 (A) (direct) (PC) (PC) + Relative Address. (A) (direct) C = 0 (A) = (direct). Thực hành lệnh kế tiếp CJNE A, # data, rel : Tương tự lệnh CJNE A, direct, rel. CJNE Rn, # data, rel : Tương tự lệnh CJNE A, direct, rel. CJNE @ Ri, # data, rel : Tương tự lệnh CJNE A, direct, rel. DJNE Rn, rel : Giảm Rn và nhảy nếu Rn 0. (PC) (PC) + 2 (Rn) (Rn) -1 (Rn) 0 (PC) (PC) + byte 2. DJNZ direct, rel : Tương tự lệnh DJNZ Rn, rel. CÂU HỎI VÀ BÀI TẬP 1. Trình bày Cấu trúc phần cứng vi điều khiển 8951 2. Thực hành lập trình cho vi điều khiển 8951 - 40 -
- ĐỀ THI MẪU Đề 1 : Câu 1: Nêu cấu trúc cổng, ý nghĩa các chân cắm của cổng LPT. Xác định khuôn dạng dữ liệu của cổng COM là bao nhiêu khi truyền đi 5 ký tự “EFGHI”với 1 bit start,8bit a,1 bit Parity, 2 bit stop? Câu 2: X Strobe Đ AutoFeed Lập trình cho các đèn LED nối với cổng LPT V theo sơ đồ bên lần lượt thay nhau phát sáng theo chu Reset kỳ 2 giây. Câu 3 : Xây dựng thủ tục cho phép quét và cấp phát ID cho các thiết bị đạng được đấu nối giao diện kết nối USB của máy tính Gợi ý đáp án Câu 1 : Liệt kê danh sách các chân tín hiệu (tên, số hiệu chaanm chiều, ý nghĩa chân tín hiệu) Chuyển đổi chuỗi ký tự sang mã ASCIII 8bit , xác định khuôn dạng dữ liệu, vẽ sơ đồ tín hiệu. Câu 2 : Xác định thanh ghi nào cần sử dụng cũng như các giá trị của thanh ghi đó theo các yêu cầu của đề bài, tiến hành viết đoạn chương trình đưa nạp giá trị vào các thanh ghi thông qua các thông số đã được xác định trước tương ứng với yêu cầu đề bài. Câu 3 : Sử dụng các hàm vả thủ tục API và HID để xây dựng chương trình. Đề 2 : Câu 1: Nêu cấu trúc đầu cắm, cáp nối của Bus ghép nối đa năng nối tiếp. Xác định khuôn dạng dữ liệu của cổng COM là bao nhiêu khi truyền đi 5 ký tự “ABCDE”với 1 bit start,8bit a,1 bit Parity, 1 bit stop Câu 2: X Lập trình cho các đèn LED nối với cổng LPT D5 theo sơ đồ bên lần lượt thay nhau phát sáng theo chu kỳ Đ 3 giây. D6 V D7 Câu 3: Xây dựng thủ tục cho phép truyền và nhận dữ liệu qua cổng USB với tham số cho trước là địa chỉ cổng - 41 -