Phần mềm: Viết phần mềm điều khiển và thu thập dữ liệu trên máy vi tính
Trang 1ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP BỘ
Chủ nhiệm đề tài: Nguyễn Văn Sơn
Cơ quan chủ trì đề tài: Trường Đại học Đà Lạt
BỘ GIÁO DỤC VÀ ĐÀO TẠO
THIẾT KẾ VÀ CHẾ TẠO MÁY PHÂN TÍCH
ĐA KÊNH (1024 kênh) GHÉP VỚI MÁY
VI TÍNH QUA CỔNG USB
Xác nhận của cơ quan chủ quản Chủ nhiệm đề tài
NGUYỄN VĂN SƠN
Mã số: B2008-14-22
Chủ nhiệm đề tài: Ths Nguyễn Văn Sơn
Đà Lạt, 08 / 2010
Trang 2DANH SÁCH THỰC HIỆN ĐỀ TÀI
CHỦ NHIỆM ĐỀ TÀI: TH.S NGUYỄN VĂN SƠN – Khoa Vật lý, Đại học
Đà Lạt
CÁC CỘNG TÁC VIÊN:
TS LƯU THẾ VINH – Khoa Vật lý, Đại học Đà Lạt
TH.S PHAN VĂN CHUÂN– Khoa Vật lý, Đại học Đà Lạt
THS TRẦN HỮU DUY– Khoa Vật lý, Đại học Đà Lạt
THS NGUYỄN VĂN KIÊN– Khoa Vật lý, Đại học Đà Lạt
Trang 3Chương 1 GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
1.1 Lý do chọn đề tài 3
1.2 Sơ lược về máy phân tích đa kênh 3
Chương 2 TỒNG QUAN VI ĐIỀU KHIỂN PIC18F2455/2550/4455/4550 2.1 Giới thiệu vi điều khiển PIC18F2455/2550/4455/4550 5
2.2 Giao động xung nhịp 6
2.3 Bộ nhớ 10
2.4 Khối timer 11
2.5 Khối CAPTURE/SO SÁNH/PWM 12
2.6 Khối CAPTURE/SO SÁNH/PWM nâng 13
2.7 Khối USB 13
2.8 Cổng song song streaming 15
2.9 Khối truyền nối tiếp đồng bộ chủ MSSP 16
2.10 Thu phát bất đồng bộ đa năng nâng cao EUSART 17
2.11 Khối biến đổi AD 10 bit 18
2.12 Khối so sánh điện áp tương tự 20
2.13 Khối tham chiếu điện áp so sánh 20
2.14 Khối phát hiện điện áp cao/thấp 20
2.15 Ngắt 21
2.16 Các chi tiết đặc biệt họ PIC18F2455/2550/4455/4550 22
Chương 3 CỔNG USB 3.1 Cổng USB 24
3.2 Mô hình BUS USB 25
3.3 Các kiểu truyền USB 27
3.4 Giao diện vật lý BUS USB 28
3.5 Giao thức truyền 31
3.6 Các quá trình truyền USB 33
3.7 Điểm danh và gói phần mềm điều khiển 36
3.8 Một số vi mạch sử dụng trong kết nối USB 41
3.9 Các mạch chuyển đổi USB sang RS232 43
Chương 4 THIẾT KẾ VÀ CHẾ TẠO CÁC KHỐI CHỨC NĂNG 4.1 Khối cao thế 44
4.2 Khối khuếch đại phổ và khối phát xung điều khiển ADC 45
4.3 Khối logic 47
4.4 Khối nguồn nuôi thế thấp 48
Chương 5 CÁC GIẢI THUẬT PHẦN MỀM 5.1 Giải thuật đóng – mở và điều khiển điện áp cao áp, điều khiển hệ số khuếch đại khối khuếch đại 49
5.2 Giải thuật hiển thị phổ 51
5.3 Giải thuật làm trơn phổ 57
5.4 Giải thuật lấy tích phân và hiển thị miền lấy tích phân 62
5.5 Giải thuật lấy diện tích hình thang 63
5.6 Giải thuật chuẩn hóa năng lượng cho phổ 64
5.7 Giải thuật đo thời gian chết phần trăm 67
5.8 Mã nguồn lưu file, mở file 70
Trang 46.1 Độ phi tuyến tích phân và độ phi tuyến vi phân 71
6.2 Độ phân giải 72
6.3 Độ trôi đỉnh phổ 72
6.4 Thời gian chết trên một xung 72
6.5 Độ trôi hệ số khuếch đại phổ 72
6.6 Độ trôi mức zero của khuếch đại phổ 73
6.7 Các đặc trưng khối cao áp 73
6.8 Các đặc trưng khối nguồn nuôi điện áp thấp 73
6.9 So sánh các đặc trưng MCA chế tạo và CANBERRA series 30 73
Chương 7 CÁC KẾT QUẢ THIẾT KẾ PHẦN MỀM 7.1 Phần mềm và các kết quả đo 74
7.2 Hiển thị phổ ở 3 chế độ: toàn giải, nửa giải cao, nửa giải thấp 74
7.3 Tính năng tính tích phân và diện tích hình thang giữa 2 vị trí con trỏ 76
7.4 Công cụ làm trơn phổ 77
7.5 Công cụ chuẩn hóa năng lượng 77
7.6 Tính năng lưu phổ, mở phổ 79
KẾT LUẬN 80
Tài liệu tham khảo 81
Phụ lục 82
Trang 5TÓM TẮT
Tên đề tài:
THIẾT KẾ VÀ CHẾ TẠO MÁY PHÂN TÍCH ĐA KÊNH (1024
KÊNH) GHÉP VỚI MÁY VI TÍNH QUA CỔNG USB
Nhiệm vụ của đề tài này gồm thiết kế & chế tạo phần cứng và phần mềm
hệ phân tích đa kênh
Phần cứng: Thiết kế và chế tạo các khối chức năng của hệ máy
phân tích đa kênh:
- Khối khuếch đại phổ và phát xung điều khiển ADC
- Khối nguồn nuôi cao áp
- Khối logic và giao tiếp PC qua cổng USB
- Khối nguồn nuôi thế thấp
Phần mềm: Viết phần mềm điều khiển và thu thập dữ liệu trên
máy vi tính
Cuối cùng là thử nghiệm, hiệu chỉnh phần mềm, phần cứng, đo và đánh giá các đặc trưng kỹ thuật của máy phân tích đa kênh chế tạo Các đặc trưng kỹ thuật căn bản của hệ chế tạo đo được là độ phân giải năng lượng nhỏ hơn 39 keV tại đỉnh Cs-137 664keV dùng với detector nhấp nháy Bicron Model 302-2x2 của CANBERRA, độ
phân nhỏ hơn 0.05% trên toàn thang đo, độ phi tuyến vi phân nhỏ hơn 3.4% trên toàn thang đo Với các đặc trưng vừa nêu, hệ máy này có khả năng đáp ứng nhu cầu thực tập môn vật lý hạt nhân của sinh viên Khoa Vật lý, Trường Đại học Đà Lạt
0.01% / C
Trang 6ABSTRACT
Project name: DESIGNING AND CONSTRUCTION OF A 1K
MULTICHANNEL ANALYZER CONNECTED WITH PC VIA USB PORT
The commision of this project is to build a multichannel analyzer
involving software and hardware
Concrete task of building hardware for multichannel analyzer is designing and manufacturing function blocks:
- Spectroscopy amplifier
- High voltage board
- Logic board and USB interface
- Low voltage power supply
Writing control and spectrum measurement software
The last is testing and correcting hardware and software so that it operates stably and has good specifications The basic
specifications of manufactured multichannel analyzer were measured: The energy resolution less than 39keV at peak Cs-137
664 KeV using CANBERRA Bicron model 302-2x2 scintillation detector; The peak drift less than 0 of full scale; The integral nonlinearity less than 0.05%over total output range; The differential nonlinearity less than 3.4% over total output range With these specifications of manufactured multichannel analyzer, absolutely this equipment will be used for practising nuclear physics of Physics deparment students of Dalat University
0.01% / C
Trang 7
MỞ ĐẦU
Máy phân tích đa kênh là thiết bị chủ lực của phòng thí nghiệm vật lý hạt nhân Lâu nay thiết bị này vẫn phải nhập ngoại và đây là thiết bị đắt tiền Nếu tự chế tạo được máy phân tích đa kênh thì sẽ chủ động cung cấp thiết bị Ngoài vấn đề về kinh tế, tự chế tạo máy đa kênh còn có các ý nghĩa sau:
Cung cấp mã nguồn của thiết bị cho người sử dụng, cho phép người sử dụng phát triển các công cụ phân tích và thu thập dữ liệu Điều này là không thể có được nếu mua thiết bị của nước ngoài
Chế tạo thành công máy phân tích đa kênh tạo tiền đề để chế tạo các thiết bị khác cho phòng thí nghiệm vật lý hạt nhân Các thiết bị này có thể thiết kế và chế tạo theo yêu cầu của việc nghiên cứu về vật lý hạt nhân
Nâng cao năng lực thiết kế và chế tạo thiết bị điện tử của nhóm thực hiện đề tài
Máy phân tích đa kênh CANBERRA series 30 của khoa Vật lý, trường Đại học Đà Lạt đã hỏng từ lâu không khả năng sửa được với hai lý do: hệ máy quá phức tạp do đây là
hệ máy đa kênh hợp bộ và một số linh kiện không mua được Do đó nhu cầu cần máy phân tích đa kênh để sinh viên thực tập là bức bách
Phương án thiết kế máy phân tích đa kênh của chúng tôi là khối chức năng bên ngoài ghép với máy vi tính qua cổng USB, là cổng tiên tiến có nhiều ưu điểm Dùng với cổng USB nên có thể ghép với máy vi tính để bàn hay vi tính xách tay mà không cần qua thiết bị chuyển đổi cổng Phương án đã đề ra có tính khả thi cao và rẻ tiền Mục tiêu thiết kế máy
đa kênh chế tạo có các đặc trưng tương đương hay gần tương đương với máy phân tích đa kênh CANBERRA series 30 Do đây là đề tài đầu tiên về thiết bị thí nghiệm vật lý hạt nhân của nhóm thực hiện đề tài nên chúng tôi chỉ đăng ký số kênh là 1024 kênh
Trong khi thực hiện đề tài này nhóm thực hiện đề tài chúng tôi đã được sự giúp đỡ
về phương diện kiến thức, kinh nghiệm và kỹ thuật của Phòng Điện Tử Hạt Nhân - Viện Nghiên Cứu Hạt Nhân Đà Lạt Chúng tôi trân trọng cảm ơn tất cả các anh chị em Phòng Điện tử Hạt Nhân - Viện Nghiên Cứu Hạt Nhân Đà Lạt, đặc biệt cảm ơn đến anh Đặng Lành, anh Trương Văn Đạt và anh Phạm Ngọc Tuấn
Trang 8CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
1.1 LÝ DO CHỌN ĐỀ TÀI
Máy phân tích đa kênh là thiết bị không thể thiếu được trong thí nghiệm môn vật lý hạt nhân Hiện phòng thí nghiệm vật lý hạt nhân tại Khoa Vật lý, Trường Đại học Đà Lạt còn thiếu máy phân tích đa kênh cho sinh viên thực tập, giá nhập ngoại thiết bị này rất đắt,
hệ phân tích đa kênh CANBERRA Series 30 đã hỏng từ lâu Đây là lý do chúng tôi đăng
ký thực hiện đề tài này Máy phân tích đa kênh hợp bộ như hệ CANBERRA Series 30 thì khả năng công nghệ của Việt Nam khó mà thực hiện và chi phí là rất cao, nên phương án hợp lý của chúng tôi là thiết kế máy phân tích đa kênh ghép với máy vi tính, số kênh là
1024 kênh Phương án ghép nối với máy vi tính có thể là cổng nối tiếp, cổng song song, cổng USB Chúng tôi chọn cổng USB, đây là cổng tiên tiến, ghép nối đơn giản, tốc độ cao, USB 2.0 full speed-12Mbits/s Với số kênh 1024, độ phân giải tốt (nhỏ hơn 40 keV dùng với detector nhấp nháy) cùng với các đặc trưng tốt khác thì thiết bị tự chế tạo có thể đáp ứng được nhu cầu thực tập môn vật lý hạt nhân cho sinh viên Khoa Vật lý, Đại học Đà Lạt
1.2 SƠ LƯỢC VỀ MÁY PHÂN TÍCH ĐA KÊNH
Máy phân tích đa kênh (MultiChannel Analyzer-MCA) được coi là thiết bị chủ lực trong việc nghiên cứu và thí nghiệm về vật lý hạt nhân Máy phân tích đa kênh cho hình ảnh phổ một cách trực quan, cùng với các công cụ trên máy phân tích đa kênh làm cho việc nghiên cứu và thí nghiệm vật lý hạt nhân trở nên thuận tiện và hấp dẫn hơn Máy phân tích
đa kênh đã trải qua nhiều thế hệ khác nhau, có thể phân loại các thế hệ máy phân tích đa kênh như sau Thế hệ tiền máy vi tính phát triển: máy phân tích đa kênh ở dạng hợp bộ, ví
dụ như MCA series 30, 40 của CANBERRA Thế hệ máy phân tích đa kênh này có kích thước kềnh càng và giá thành rất đắt Với trình độ công nghệ còn hạn chế của Việt Nam thì thiết kế và thi công máy đa kênh dạng hợp bộ là khó khả thi
Hình 1.1 Máy phân tích đa kênh hợp bộ series 40 của CANBERRA
Thế hệ hậu máy vi tính phát triển: Máy vi tính đa kênh không còn sản xuất ở dạng hợp bộ mà ở dạng các card, các khối ghép với máy vi tính Card MCA có thể ghép với máy
vi tính qua slot của máy vi tính, loại card này yêu cầu linh kiện phải gọn nhỏ, linh kiện
Trang 9thường là loại hàn bề mặt và có mật độ tích hợp cao để kích thước card gọn nhỏ để có thể cắm vào slot của máy vi tính, và tất nhiên loại card MCA này không thể cắm vào máy vi tính xách tay
Hình 1.2 Card MCA ASA-100 cắm vào Slot của máy vi tính của CANBERRA
Card MCA ghép với máy vi tính qua các cổng giao tiếp như cổng song song, cổng nối tiếp, cổng USB Các card bên ngoài máy vi tính có thuận lợi là không có yêu cầu về kích thước card Cổng song song có nhược điểm số đường dây kết nối lớn, khoảng cách ngắn Cổng nối tiếp khắc phục được nhược điểm số đường dây lớn của cổng song song, nhưng tốc độ truyền chậm Máy vi tính xách tay hiện tại đã bỏ hẳn cổng song song và cổng nối tiếp Cổng USB là cổng tiên tiến, liên kết với máy vi tính bằng 4 đường dây kể cả dây nguồn 5V, nếu không dùng dây nguồn chỉ còn lại 3 dây: mass, D+, D-, tốc độ truyền dữ liệu cao USB 2.0 high speed: 480Mbits/s Do ưu điểm MCA card ngoài và ưu điểm cổng USB là các lý do đề tài này chọn phương án thiết kế và chế tạo
Trang 10
Hình 1.3 DSA-1000 là máy phân tích đa kênh ghép với máy vi tính
qua cổng USB và RS232 của CANBERRA
Thế hệ máy phân tích đa kênh tiên tiến là dựa trên công nghệ DSP (Digital Signal Processing) Tín hiệu từ tiền khuếch đại được xử lý bằng phương pháp số (DSP), tính không ổn định của phương pháp tương tự được loại bỏ Độ trôi các thông số theo nhiệt độ
và thời gian bị loại bỏ, các thông số đó như là hệ số khuếch đại, đường cơ bản
CANBERRA có thiết bị InSpector 2000 là máy phân tích đa kênh dựa trên công nghệ DSP Máy phân tích đa kênh dựa trên công nghệ DSP là sự chọn lựa đề tài nghiên cứu tiếp theo của chúng tôi
Hình 1.4 InSpector 2000 – Máy phân tích đa kênh ghép với máy vi tính
dựa trên công nghệ DSP
Trang 11CHƯƠNG 2
TỔNG QUAN VI ĐIỀU KHIỂN PIC18F2455/2550/4455/4550
2.1 GIỚI THIỆU VI ĐIỀU KHIỂN PIC18F2455/2550/4455/4550
Họ vi điều khiển PIC18F2455/2550/4455/4550 là họ vi điều khiển tiên tiến của
MICROCHIP, đặc biệt họ này có tích hợp cổng USB 2.0, ADC 10 bit và tích hợp nhiều công cụ khác Mạnh, mềm dẻo là từ đánh giá ngắn gọn về họ vi điều khiển này Chương này giới thiệu tổng quan các khối tích hợp của họ vi điều khiển PIC18F và các đặc điểm của các khối tích hợp, mục đích là phục vụ cho việc thiết kế ở các chương sau
Các đặc điểm cổng USB:
USB V2.0
Tốc độ thấp (1.5 Mb/s) và tốc độ toàn phần (12Mb/s)
Hỗ trợ tới 32 điểm cuối
RAM 1 kByte cho khối USB
Mạch thu phát USB trên chip cùng với mạch ổn áp 3.3V
Cổng song song streaming (SPP) cho truyền streaming USB
Hỗ trợ cả 4 chế độ truyền:
- Truyền điều khiển (Control transfer)
- Truyền ngắt (Interrupt transfer)
- Truyền đồng bộ (Isochronous transfer)
- Truyền khối (Bulk transfer)
Các chế độ quản lý năng lượng : có nhiều chế độ quản lý năng lượng để giảm năng lượng
tiêu thụ tối đa, đặc biệt có ý nghĩa cho các ứng dụng sử dụng pin
Hoạt động bình thường (Run): CPU bật, ngoại vi bật
Nghỉ (Idle): CPU tắt, ngoại vi bật, tiêu thụ dòng tiêu biểu 5.8A
Ngủ (Sleep): CPU tắt, ngoại vi tắt, tiêu thụ dòng tiêu biểu 0.1A
Dao động timer1: tiêu thụ dòng tiêu biểu 1.1A, 32kHz, 2V
Watchdog timer: tiêu thụ dòng tiêu biểu 2.1A
Khởi động dao động 2 tốc độ
Cấu trúc dao động mềm dẻo:
Bốn chế độ tinh thể bao gồm PLL độ chính xác cao cho USB
Hai chế độ xung clock ngoài lên đến 48 MHz
Khối dao động nội
- 8 tần số chọn được bởi người sử dụng, từ 31kHz đến 8 Mhz
- Tinh chỉnh bởi người dùng để bổ chính độ trôi tần số
Dao động thứ cấp dùng timer1 32kHz
Tùy chọn dao động đôi cho phép CPU và USB hoạt động 2 tần số xung nhịp khác nhau
Khối theo dõi an toàn xung nhịp
- Cho phép shutdown an toàn khi tắt xung nhịp
- hay vi điều khiển sẽ tiếp tục hoạt động với tần số xung nhịp thấp hơn
Các đặc điểm ngoại vi:
Dòng vào/ra (sink/source) cao 25mA/25mA
Trang 12 Ba ngắt ngoài
Bốn khối timer (timer0 đến timer3)
Có tới 2 khối CCP (Capture/Compare/PWM)
- Capture 16 bit cực đại, độ phân giải 6.25 ns (T /16CY )
- So sánh 16 bit cực đại, độ phân giải 100 ns (TCY)
- PWM có lối ra với độ giải từ 1 đến 10 bit
Khối CCP nâng cao ECCP (Enhanced Capture/Compare/PWM)
Cổng truyền nối tiếp đồng bộ chủ MSSP (Master Synchronous Serial Port)
ADC 10 bit, 13 lối vào, thời gian thu thập dữ liệu lập trình được
2 bộ so sánh tương tự với đa hợp lối vào
Các đặc điểm của vi điều khiển
Cấu trúc tối ưu biên dịch C với tập lệnh mở rộng tùy chọn
Bộ nhớ chương trình flash nâng cao cho phép 100.000 lần xóa/ghi
Bộ nhớ dữ liệu EEPROM cho phép 1.000.000 lần xóa/ghi
Lưu trữ dữ liệu trong bộ nhớ flash/EEPROM hơn 40 năm
Ngắt nhiều mức ưu tiên
Watchdog timer mở rộng, chu kỳ khả trình từ 41 ms đến 131 s
Bảo vệ mã lập trình
Nguồn nuôi đơn 5V cho lập trình nối tiếp trên mạch qua 2 chân
Mạch gỡ lỗi qua 2 chân
Dải điện áp hoạt động rộng (2.0V đến 5.5V)
Bảnh 2.1 Các tính năng kỹ thuật của các vi điều khiển PIC18F2455/2550/4455/4550
Trong họ vi điều khiển PIC18, chữ giữa “F” cho phép Vdd từ 4.2V đến 5.5V, chữ giữa
Trang 13- Nhân tần dùng PLL (Phase Loop Lock) áp dụng cho cả dao động tinh thể tần số cao và dao động ngoài cho dải tần số xung nhịp từ 4MHz đến 48MHz
- Hoạt động xung nhịp kép không đồng bộ (Asynchronous dual clock operation): khối USB hoạt động xung nhịp tần số cao trong khi các khối còn lại trong vi điều khiển hoạt động với xung nhịp tần số thấp hơn
- Theo dõi an toàn xung nhịp (Fail-Safe clock monitor): tùy chọn này cho phép nguồn xung nhịp chính luôn luôn được theo dõi, nếu xảy ra trường hợp xung nhịp chính tắt vi điều khiển sẽ tiếp tục hoạt động với tần số xung nhịp thấp hơn
- Khởi động hai tốc độ (Two-Speed Start-up): Tùy chọn này cho phép nguồn xung nhịp nội hoạt động khi reset lúc khởi động hay vi điều khiển hoạt động trở lại từ chế độ ngủ (wake-up from sleep mode) cho đến khi nguồn xung nhịp chính đã sẵn sàng
Hình 2.1 Sơ đồ khối PIC18F2455/2550 (28 chân)
Trang 14Thạch anh dao động / cộng hưởng gốm: Ở chế độ HS, HSPLL, XT, XTPLL thạch anh
dao động/ cộng hưởng gốm mắc ở chân OSC1 và OSC2 Ở mỗi chế độ C1, C2 đặt cạnh thạch anh dao động/ cộng hưởng gốm có giá trị khác nhau (tham khảo datasheet
PIC18F2455/2550/4550)
Nhân tần số PLL: Trong vi điều khiển PIC18F2455/2550/4550 có khối PLL (Phase Loop Lock), điều này cho phép khối USB hoạt động ở tần số cao trong khi xung nhịp của hệ thống ở tần số thấp hơn PLL được phép hoạt động ở các chế độ dao động HSPLL,
XTPLL, ECPLL và ECPIO Nó được thiết kế để sinh ra tần số xung nhịp chuẩn 96MHz từ tần số lối vào cố định 4MHz
Hình 2.2 Sơ đồ khối PIC18F4455/4550 (40/44 chân)
Khối dao động nội (INTOSC): Trong vi điều khiển PIC18F2455/2550/4550 có khối dao
động nội phát ra hai tín hiệu xung nhịp khác nhau Lối ra trực tiếp 8 MHz, lối ra qua bộ
Trang 15chia (postscaler) cung cấp xung nhịp từ 31 KHz đến 4 MHz Lưu ý nguồn dao động lấy từ thạch anh dao động/ cộng hưởng gốm gọi là dao động ngoài Nguồn dao động nội lối ra 31 KHZ cho phép trong các trường hợp:
- Timer bật nguồn (Power-up timer)
- Theo dõi an toàn xung nhịp
- Watchdog timer
- Khởi động hai tốc độ (Two-Speed Start-up)
Lối ra dao động nội được chuẩn bởi hãng chế tạo nhưng vẫn có thể tinh chỉnh bởi người sử dụng, việc tinh chỉnh này được thực hiện nhờ thanh ghi điều chỉnh dao động (Oscillator Control Register)
Các chế độ dao động nội: Sư lựa chọn nguồn xung nhịp cho USB xác định bởi các chế
độ dao động nội riêng biệt
- Chế độ INTHS: Xung nhịp USB được cung cấp bởi dao động trong chế độ HS
- Chế độ INTXT: Xung nhịp USB được cung cấp bởi dao động trong chế độ XT
- Chế độ INTXT: Xung nhịp USB được cung cấp bởi dao động trong chế độ XT
- Chế độ INTCKO: Xung nhịp USB được cung cấp từ dao động bên ngoài thạch anh dao động/ cộng hưởng gốm
- Chế độ INTIO: xung nhịp cho USB được cung cấp vào chân OSC1/CLK1, còn chân OSC2/CLK2 có chức năng như chân I/O
- Tần số dao động cho USB là 6 MHz hoặc 48 MHz tùy thuộc vào chế độ tốc độ thấp (low speed) hay chế độ tốc độ toàn phần (full speed)
- Tần số dao động cho USB là 6 MHz hoặc 48 MHz tùy thuộc vào chế độ tốc độ thấp (low speed) hay chế độ tốc độ toàn phần (full speed)
Trang 16Hình 2.3 Sơ đồ khối dao động
2.3 BỘ NHỚ
Bộ nhớ Flash nâng cao (Enhanced Flash) sử dụng cho bộ nhớ chương trình và bộ nhớ dữ liệu EEPROM Số lần xóa/ghi cho bộ nhớ chương trình là 100.000 lần và cho bộ nhớ dữ liệu là 1.000.000 lần Dữ liệu lưu lại trong bộ nhớ đến 40 năm mà không cần làm tươi
Có ba loại bộ nhớ trong họ PIC18:
PIC18F4455 có 24 Kbyte bộ nhớ flash và có thể chứa tới 12.288 lệnh từ đơn PIC18F2550, PIC18F4550 có 32 Kbyte bộ nhớ flash và có thể chứa đến 16.384 lệnh từ đơn
Trang 17Khả năng tự lập trình: Họ vi điều khiển PIC18F2455/2550/4550 có khả năng tự nạp
chương trình vào bộ nhớ chương trình mà không cần phải có thiết bị phụ bên ngoài, điều này được thực hiện bằng đoạn chương trình con Bootloader đặt trên phần cao bộ nhớ chương trình vào được bảo vệ Khả năng tự lập trình cho phép các ứng dụng dùng họ vi điều khiển này có khả năng nâng cấp firm-ware
Bộ nhớ chương trình Flash: 24Kbytes cho PIC18FX455, 32 Kbytes cho PIC18FX550
Định chế độ hoạt động bằng phần mềm: timer hoặc counter, 8 bit hoặc 16 bit
Bộ chia khả trình 8 bit chuyên dụng
Nguồn xung nhịp chọn được (trong hay ngoài)
Khả năng chọn cạnh đối với xung nhịp ngoài
Ngắt khi tràn
Timer1:
Chọn bằng phần mềm timer hay counter 16 bit
Trang 18 Khả năng đọc viết thanh ghi 8 bit (TMR1H và TMR1L)
Chọn nguồn xung nhịp trong hay ngoài
Ngắt khi tràn
Khối RESET hoạt động trên cơ sở xung kích sự kiện CCP
Cờ trạng thái xung nhịp (T1RUN)
Timer2:
Timer 8 bit (TMR2) và thanh ghi chu kỳ (PR2)
Khả năng đọc viết cả 2 thanh ghi
Lập trình bằng phần mềm cho bộ chia (1:1, 1:4, 1:16)
Ngắt khi TMR2 gặp PR2
Tùy chọn dùng như xung nhịp dịch cho khối MSSP
Timer3:
Chọn bằng phần mềm hoạt động như là timer hoặc counter 16 bit
Khả năng đọc ghi thanh ghi 8 bit (TMR3H và TMR3L)
Khả năng chọn nguồn xung nhịp (trong hoặc ngoài)
Chế độ Capture: Cặp thanh ghi CCPRxH:CCPRxL bắt giá trị 16 bit của thanh ghi TMR1
hoặc TMR3 khi sự kiện xảy ra ở chân CCPx tương ứng Một sự kiện được định nghĩa:
Mỗi khi có cạnh lên
Mỗi khi có cạnh xuống
Mỗi khi có cạnh lên thứ 4
Mỗi khi có cạnh lên thứ 16
Sự kiện được chọn bởi bit chọn chế độ CCPxM3:CCPxM0 (CCPxCON<3:0>) Khi sự kiện Capture được thực hiện, bit cờ yêu cầu ngắt (CCPxIF) được SET và chỉ xóa bằng phần mềm
Chế độ so sánh: Thanh ghi 16 bit CCPRx có giá trị hằng số được so sánh với giá trị của
cặp thanh ghi TMR1 hoặc TMR3 Khi xảy ra sự kiện bằng nhau, chân CCPx có thể là:
Chuyển mức cao
Chuyển mức thấp
Phát xung (cực tính dương hoặc âm)
Giữ nguyên không thay đổi trạng thái (phản ánh trạng thái chốt I/O)
Chân CCPx xác định trên cơ sở giá trị của bit chọn chế độ (CCPxM3:CCPxM0) Khi sự kiện so sánh bằng nhau bit cờ ngắt CCPxIF được set (mức1)
Chế độ PWM (Pulse-Width Modulation: điều chế độ rộng xung): Chân CCPx phát sinh
xung PMW độ phân giải 10 bit Độ rộng xung (Duty Cycle) của xung PWM được hình thành theo minh họa hình dưới đây
Trang 19
Hình 2.4 Hình thành xung PWM ở lối ra
Độ rộng xung PWM được xác định bằng cách viết vào thanh ghi CCPRxL và các bit CCPxCON<5:4> , CCPRxL chứa 8 bit cao và CCPxCON<5:4> chứa 2 bit thấp giá trị 10 bit độ phân giải là giá trị CCPRxL : CCPxCON<5:4>
Độ rộng xung PWM được tính theo công thức:
PWM Duty Cycle (CCPRxL : CCPxCON 5 : 4 *Tosc*(TMR2 Pr esscale Value)
CCPRxL và CCPxCON<5:4> có thể được viết vào mọi thời điểm nhưng giá trị độ rộng xung không chốt vào CCPRxH cho tới khi có sự gặp nhau (bằng) giữa PR2 và TMR2 Trong chế độ PWM CCPRxH là thanh ghi chỉ đọc
2.6 Khối Capture/so sánh/PWM nâng cao (ECCP).Khối ECCP chỉ có ở PIC18 với vỏ
40/44 chân Ở PIC18F4455/4550, CCP1 thực hiện chức năng của CCP chuẩn với khả năng PWM nâng cao, có nghĩa chức năng Capture và so sánh không thay đổi, giống CCP chuẩn Thanh ghi điều khiển cho CCP nâng cao khác với thanh ghi CCPxCON ở
PIC18F2255/2550 là 2 bit MBS thực hiện chức năng điều khiển PWM Hai bit này cho phép xung lối ra thực hiện các kiểu khác nhau:
00 = lối ra đơn: P1A điều chế; P1B, P1C, P1D chức năng chân cổng
01 = lối ra toàn cầu thuận: P1D điều chế; P1A tác động; P1B, P1C không tác động
10 = lối ra nửa cầu: P1A, P1B điều chế với điều khiển dải chết; P1C, P1D chức năng chân cổng
11 = lối ra toàn cầu nghịch: P1B điều chế; P1C tác động; P1A, P1D không tác động
2.7 KHỐI USB (Universal Serial Bus)
Họ PIC18FX455/X550 tích hợp cổng USB hỗ trợ cả tốc độ truyền toàn phần (full-speed) 12Mb/s và tốc độ thấp (low-speed) 1.5 Mb/s cho phép giao tiếp nhanh giữa USB máy chủ
và USB vi điều khiển PIC Hỗ trợ đến 32 điểm cuối RAM 1 kbyte cho USB Hỗ trợ đủ 4 lối truyền: truyền điều khiển (Control transfer); truyền ngắt (Interrupt transfer); truyền đẳng thời (Isochronous transfer) và truyền khối (Bulk transfer)
Trang 20Hình 2.5 Sơ đồ khối USB
Hoạt động của khối USB được định cấu hình và quản lý thông qua 3 thanh ghi điều khiển Hơn nữa có 19 thanh ghi quản lý giao tiếp USB thực Các thanh ghi đó là:
Thanh ghi điều khiển USB (UCON): Thanh ghi này chứa các bit cần cho điều khiển trong quá trình truyền gồm: cho phép ngoại vi USB chính; reset con trỏ bộ đệm ping-pong; điều khiển chế độ treo; cấm truyền gói
Thanh ghi cấu hình USB (UCFG): Trước khi liên lạc qua USB, khối USB kết hợp phần cứng ngoài và/hoặc trong phải được đặt cấu hình UCFG chứa các bit liên quan đến việc đặt: tốc độ full-speed hay low-speed; cho phép dùng điện trở kéo lên trong IC; cho phép thu-phat trong IC; sử dụng bộ đệm ping-pong
Thanh ghi trạng thái truyền USB (USTAT): Báo cáo trạng thái giao tiếp trong SIE
Thanh ghi địa chỉ linh kiện USB (UADDR): Chứa duy nhất địa chỉ USB mà ngoại
vi sẽ giải mã khi tích cực UADDR = 00h khi reset USB bởi vi điều khiển Địa chỉ USB phải được viết bởi vi điều khiển trong pha setup USB được hỗ trợ bởi
firmware của Microchip
Thanh ghi số frame (UFRMH:UFRML): Thanh ghi số frame chứa số frame 11 bit, 8 bit thấp chứa trong UFRML, 3 bit cao chứa trong UFRMH Cặp thanh ghi được cập nhật với số frame hiện tại khi gói SOF được nhận Thanh ghi số frame được dùng căn bản cho lối truyền đẳng thời (isochronous transfer)
Thanh ghi cho phép điểm cuối từ 0 đến 15 (UEPn): Mỗi của 16 điểm cuối hai chiều
có thanh ghi điều khiển độc lập UEPn, n là số điểm cuối
Trang 21ĐIỀU KHIỂN ĐIỂM CUỐI USB
Mỗi của 16 điểm cuối hai chiều có thanh ghi điều khiển độc lập UEPn, n là số điểm cuối USB RAM
Dữ liệu USB di chuyển giữa lõi vi điều khiển và SIE (Serial Interface Engine) thông qua vùng nhớ gọi là RAM USB Đây là nhớ cổng đôi đặc biệt, vùng nhớ dữ liêu bình thường ở Bank 4 đến Bank 7 (400h tới 7FFh) dung lượng 1Kbyte Bank 4 (400h đến 4FFh) được dùng đặc biệt cho điều khiển đệm điểm cuối, trong khi Bank 5 đến Bank 7 dùng cho dữ liệu USB
Ngắt USB: Khối USB có thể phát ra nhiều điều kiện ngắt Trên hình 2.6 cho thấy logic ngắt cho khối USB Có hai lớp ngắt trong khối USB Mức cao gồm các ngắt trạng thái USB, nó đặt cho phép và đặt cờ trong thanh ghi cho phép ngắt UIE (USB Interrupt Enable)
và thanh ghi trạng thái ngắt USB UIR (USB Interrupt Status Register) tương ứng Mức thấp gồm các điều kiện lỗi USB, nó đặt cho phép và đặt cờ trong thanh ghi trạng thái ngắt lỗi USB UEIR (USB Error Interrupt Status Register) và thanh ghi cho phép ngắt lỗi USB UEIE (USB Error Interrupt Enable Register)
Hình 2.6 Các ngắt của khối USB
2.8 CỔNG SONG SONG STREAMING (SPP: Streaming Parallel Port)
PIC18F4455/4550 cung cấp cổng song song streaming là cổng giao tiếp ra bên ngoài tốc
độ cao Cổng song song này hoạt động như cổng master cung cấp tín hiệu chọn chip và xung nhịp để điều khiển giao tiếp dữ liệu với các thiết bị slave
Hoạt động SPP liên quan đến 2 thanh ghi: Thanh ghi điều khiển cổng song song SPPCON
và thanh ghi cấu hình cổng song song SPPCFG Các đường dây của cổng song song
streaming là: 8 dây dữ liệu/địa chỉ SPP<7:0>; 2 dây lối ra xung nhịp CK1SPP và CK2SPP; cho phép lối ra OESPP; chọn chip CSSPP
Trang 22
Hình 2.7 Cổng song song streaming với các chân dữ liệu và điều khiển
2.9 KHỐI TRUYỀN NỐI TIẾP ĐỒNG BỘ CHỦ MSSP ( Master Synchronous Serial
Port)
Giao diện nối tiếp này dùng để trao đổi dữ liệu với các linh kiện như EEPROM nối tiếp, thanh ghi dịch, biến đổi AD … Khối MSSP có 2 dạng: giao diện ngoại vi nối tiếp SPI (Serial Peripheral Interface) và giao tiếp giữa các linh kiện tích hợp I2C (Inter-Intergrated Circuit) Giao tiếp I2C hỗ trợ phần cứng các chế độ sau:
DẠNG SPI: Dạng này cho phép 8 bit dữ liệu thu phát nối tiếp đồng bộ một cách đồng
thời Tất cả 4 chế độ SPI được hỗ trợ Giao tiếp dạng SPI có các chân:
Dữ liệu ra nối tiếp SDO (Serial Data Out)
Dữ liệu vào nối tiếp SDI (serial Data In)
Xung nhịp nối tiếp SCK (Serial Clock)
Và chân thứ 4 được dùng ở chế độ tớ: Chọn tớ SS (Slave Select)
Khối MSSP có 4 thanh ghi:
Thanh ghi điều khiển 1 MSSP (SSPCON1)
Thanh ghi trạng thái MSSP (SSPSTAT)
Thanh ghi đệm thu/phát nối tiếp (SSPBUF)
Thanh ghi dịch MSSP (SSPSR)
Trang 23Hình 2.8 Sơ đồ giao tiếp bằng SDI
DẠNG I 2 C: Giao thức I2C thực hiện giao tiếp theo kiểu chủ-tớ, 2 chân dùng trong giao thức này là: xung nhịp nối tiếp SCL (Serial Clock) và dữ liệu nối tiếp SDA (Serial Data) Thanh ghi liên quan đến giao thức I2C là:
Thanh ghi điều khiển 1 MSSP (SSPCON1)
Thanh ghi điều khiển 2 MSSP (SSPCON2)
Thanh ghi trạng thái MSSP (SSPSTAT)
Thanh ghi đệm thu/phát nối tiếp (SSPBUF)
Thanh ghi dịch MSSP (SSPSR)
Thanh ghi địa chỉ MSSP (SSPADD)
2.10 THU PHÁT BẤT ĐỒNG BỘ ĐA NĂNG NÂNG CAO EUSART (Enhanced
Universal Asynchronous Receiver Transmitter)
Khối USART có thể định cấu hình thành hệ thống bất đồng bộ song công, ví dụ như trao đổi dữ liệu từ máy và màn hình CRT… Và cũng có thể định cấu hình thành bất đồng bộ bán song công, ví dụ như trao đổi dữ liệu với ngoại vi như mạch tích hợp biến đổi A/D, D/A, EEPROM nối tiếp …Khối thu phát bất đồng bộ nâng cao có thêm các tính năng như:
tự động phát hiện tốc độ BAUD và lấy chuẩn tốc độ BAUD; tự động đánh thức khi nhận Sync Break và phát ký tự Break 12 bit Các chi tiết này làm EUSART thích hợp với hệ thống LIN bus (Local Interconnect Network) EUSART có thể định cấu hình theo các chế
Chủ đồng bộ với cực tính xung đồng hồ chọn được (bán song công)
Tớ đồng bộ với cực tính xung đồng hồ chọn được (bán song công)
Các chân của EUSART đa hợp với cổng C: RC6/TX/CK và RC7/RX/DT/SDO
Hoạt động khối EUSART liên quan đến 3 thanh ghi:
Thanh ghi điều khiển và trạng thái phát (TXSTA)
Thanh ghi điều khiển và trạng thái thu (RCSTA)
Thanh ghi điều khiển tốc độ BAUD (BAUDCON)
Trang 242.11 KHỐI BIẾN ĐỔI AD 10 BIT
Khối ADC 10 bit: Khối ADC của họ vi điều khiển này có khả năng kết hợp với việc thời gian thu thập dữ liệu khả trình cho phép không cần chờ chu kỳ lấy mẫu nên giảm thời gian biến đổi AD
Khối biến đổi AD có 10 lối vào đối với PIC18 vỏ 28 chân và 13 lối vào đối với vỏ 40/44 chân Khối này có 5 thanh ghi:
Thanh ghi kết quả A/D cao (ADRESH)
Thanh ghi kết quả A/D thấp (ADRESL)
Thanh ghi điều khiển A/D 0 (ADCON0)
Thanh ghi điều khiển A/D 1 (ADCON1)
Thanh ghi điều khiển A/D 2 (ADCON2)
Trang 25Thời gian thu thập dữ liệu
Để biến đổi A/D hoạt động đúng, TAD phải nhỏ có thể có nhưng lớn hơn TAD tối thiểu
Bảng 2.2 TADtheo tần số hoạt động của vi điều khiển
Trang 26Thời gian biến đổi A/D = TACQ11*TADTAD1 , trong đó TAD1 là thời gian tụ xả
2.12 KHỐI SO SÁNH TƯƠNG TỰ
Khối so sánh gồm 2 mạch so sánh có thể định các cấu hình khác nhau Lối vào có thể chọn
từ lối vào tương tự đa hợp với các chân từ RA0 đến RA5 Lối ra digital (bình thường hay đão) đọc qua thanh ghi điều khiển so sánh
Bảng 2.3 Lối ra (digital) của mạch so sánh đọc qua thanh ghi điều khiển so sánh
Lối ra mạch so sánh 1 và 2 lần lượt ở bit 6 và 7, lối ra đão mạch so sánh 1 và 2 lần lượt ở bit 4 và 5 của thanh ghi điều khiển so sánh
Có 8 cấu hình của khối so sánh được định bởi thanh ghi CMCON
2.13 KHỐI THAM CHIẾU ĐIỆN ÁP SO SÁNH
Khối tham chiếu điện áp so sánh là một cầu chia áp gồm 16 điện trở (trên hình 2.11)
.Mục đích của khối này là tạo ra điện áp chuẩn khả trình cho cho các mạch so sánh tương
tự Định cấu hình cho tham chiếu điện áp so sánh bằng thanh ghi điều khiển tham chiếu điện áp so sánh CVRCON
Hình 2.11 Sơ đồ tham chiếu điện áp so sánh
2.14 KHỐI PHÁT HIỆN ĐIỆN ÁP CAO/THẤP
Họ vi điều khiển PIC18F2455/2550/4455/4550 có khối phát hiện điện áp cao/thấp Đây là mạch khả trình cho phép người sử dụng xác định được Nếu điện áp tại điểm cần phát hiện cao hơn hay thấp hơn điện áp đặt thì cờ ngắt HLVDIF được SET và nếu sử dụng ngắt chương trình rẽ nhánh đến địa chỉ vector ngắt và phần mềm thực hiện đáp ứng ngắt Liên
Trang 27quan đến khối phát hiện điện áp cao/thấp là thanh ghi điều khiển phát hiện điện áp cao/thấp HLVDCON (High/Low Voltage Detect Control)
Mỗi nguồn tín hiệu ngắt có 3 bit để điều khiển hoạt động Chức năng của 3 bit này là:
Bit cờ để chỉ thị một sự kiện ngắt xảy ra
Bit cho phép để cho phép ngắt, chương trình nhảy đến địa chỉ vector ngắt của tín hiệu ngắt khi bit cờ được set
Bit ưu tiên ngắt để chọn mức độ ưu tiên ngắt
Trang 28
Hình 2.13 Sơ đồ logic các tín hiệu ngắt
Mức độ ưu tiên ngắt được cho phép bằng cách SET bit IPEN (RCON<7>) Khi độ ưu tiên được cho phép, có 2 bit cho phép ngắt toàn cục SET bit GIEH (INTCON<7>) cho phép tất
cả các ngắt mà SET độ ưu tiên cao SET bit GIEL (INTCON<6>) cho phép tất cả các ngắt
mà SET độ ưu tiên thấp Khi cờ ngắt, bit cho phép và cờ cho phép ngắt toàn cục SET chương trình sẽ nhảy đến địa chỉ vector ngắt 000008h hoặc 000018h tùy thuộc vào mức độ
ưu tiên Các ngắt riêng rẽ có thể không cho phép thông qua các bit cho phép tương ứng
Ngắt USB
Không giống như các giao diện ngoại vi khác, khối USB có khả năng phát ra nhiều tín hiệu ngắt Các tín hiệu ngắt USB gồm có vài tín hiệu ngắt liên lạc thông thường, vài tín hiệu ngắt sự kiện trạng thái và vài tín hiệu ngắt sự kiện lỗi Trong khối USB được trang bị mạch logic ngắt riêng cho khối USB (đã trình bày trong phần 2.7 và sơ đồ logic ngắt USB ở hình 2.6)
2.16 CÁC CHI TIẾT ĐẶC BIỆT HỌ PIC18F2455/2550/4455/4550
Họ vi điều khiển này có vài chi tiết đặc biệt nhằm tăng độ tin cậy tối đa và giảm giá thành
do các linh kiện bên ngoài được giảm tối đa Các chi tiết đặc biệt có thể kể ra là:
Nguồn dao động phong phú
Các reset:
- reset nguồn bật (POR)
- timer nguồn bật (PWRT)
Trang 29- timer khởi động dao động (OST)
- reset Brown-out (BOR)
Quản lý năng lượng với nhiều chế độ hoạt động
Theo dõi an toàn xung nhịp
Trang 30CHƯƠNG 3 CỔNG USB
3.1 CỔNG USB
Cổng USB (Universal Serial Bus) thực chất là một bus nối tiếp được phát triển bởi một nhóm gồm nhiều công ty: Compaq, DEC, IBM, Intel, Microsoft, NEC và Nortel Ý tưởng khi xây dựng cổng USB là phát triển một cổng có thể kết dễ dàng đến nhiều thiết bị
mở rộng khác nhau Bus USB đã được phát triển qua một số phiên bản sau:
USB 1.0: được giới thiệu vào năm 1996, là phiên bản đầu tiên Tốc độ truyền dữ liệu giữa máy tính và thiết bị kết nối có thể đạt được là 12Mbit/s
USB 1.1: được giới thiệu vào năm 1997 kế thừa và phát triển từ USB 1.0 Bên cạnh những tính năng của USB 1.0, USB 1.1 hỗ trợ hai tốc độ truyền là: 12Mbit/s cho thiết bị (Full speed) và 1,5Mbit/s cho các thiết bị có tốc độ thấp (low speed)
USB 2.0: được giới thiệu vào năm 2000, với tính tương thích với các phiên bản
trước đó và thêm lựa chọn tốc độ cao 480Mbit/s (High-Speed) Tháng 12 năm 2000
công ty ECN đưa ra chuẩn đấu nối kiểu mới (kiểu đầu nối B)
USB 3.0 ra đời từ năm 2008, tốc độ có thể gấp hàng chục lần tốc độ của phiên bản USB 2.0
Hình 3.1 Biểu tượng của bus usb (a), cáp và cổng kết nối (b)
Với các máy tính được sản xuất gần đây đều trang bị một số cổng giao tiếp USB cho phép dễ dàng kết nối đến các thiết bị có hỗ trợ USB như: máy in, máy quét hình, camera, các thiết bị đo lường, …
Về mặt phần mềm từ phiên bản OEM 2.1 của Windows 95 bắt đầu có hỗ trợ một số tính năng Trong phiên bản Windows 98 một số thiết bị được cung cấp trình điều khiển
thiết bị (Device Driver) kèm theo Windows Các gói phần mền hỗ trợ cho cổng USB tiếp
tục xây dựng và tích hợp trong các phiên bản của Windows Me, Windows 2000 và Windows XP làm cho cổng USB trở lên rất thông dụng
Một số đặc điểm của bus USB là:
Dễ dàng sử dụng: không phải quan tâm nhiều đến cấu hình và cài đặt chi tiết Đ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
Nhanh: giao diện không bị thắt “cổ chai” với các thiết bị truyền thông chậm
Tin cậy: ít xảy ra do có cơ chế tự động sửa chữa lỗi
Mềm dẻo: có thể kết nối nhiều loại thiết bị với giao diện này
Cung cấp nguồn trên bus: điều này rất thuận tiện cho các thiết bị xách tay với dòng tiêu thụ nhỏ có thể được cung cấp thông qua bus
Trang 31 Được hỗ trợ bởi hệ thống: khi một thiết bị được đấu nối vào, hệ thống tự phát hiện
và gọi phần mềm cài đặt cho chúng Đặc tính ngày gọi là cắm nóng (Plus and Play)
là một trong những đặc tính mà các cổng trước đó không như LPT hay RS232 không có được
Kết nối nhiều thiết bị: có thể kết nối đến 127 thiết bị có cấu hình và tốc độ khác nhau trên một hệ thống bus USB
Bảng 3.1 So sánh giao diện USB với các giao diện thông dụng trên máy tính
Dạng truyền Giao diện
Số thiết
bị lớn nhất
Chiều dài
(m)
Tốc độ lớn nhất (bit/sec) Thiết bị sử dụng Nối tiếp không
5 m 1.5, 12,
480MB
Mouse, Keyboard, Disk Drive
Nối tiếp không
đồng bộ RS 232 2 9 – 30.5 20÷115K Modem, Mouse, các thiết bị điều khiển khác Nối tiếp không
đồng bộ RS 485 32÷256 1200 10M Hệ thống thu dữ liệu và điều khiển Nối tiếp hồng
Wire) IEEE 1394 15 4.5 400M Video, Mass Storage
Parallel IEEE 488 1024 18 8M Các thiết bị khoa học
Serial Current
Parallel Parallel port 2 3 - 9 8M Printer, Scanners, Disk Drive
3.2 MÔ HÌNH BUS USB
Cấu trúc cơ bản của mạng USB là các tầng hình sao Một hệ thống USB bao gồm:
một hay nhiều thiết bị ngoại vi(Peripherals), một hay nhiều Hub và một chủ duy nhất (thường là máy tính) gọi là chủ điều khiển (Host Controller) Chủ điều khiển kết hợp chặt chẽ với Hub gốc (Root Hub) để mở rộng các điểm nối đến chủ, từ hub gốc sẽ kết nối đến
các thiết bị hay các Hub khác Hub là thiết bị được sử dụng để mở rộng các cổng, ví dụ
(hình 3.3) một hub gồm 1 kết nối nối về máy chủ (upstream) và 4 cổng ra kế nối với thiết
bị ngoài (downstream)
Trang 32
Hình 3.2 Mô hình kết nối bus của USB
Hình 3.3 Sơ đồ kết nối sao một bus USB
Máy chủ nhận biết một thiết bị được đấu nối vào bus bằng cách hỏi vòng các hub liên tục Khi một thiết bị được cắm vào một cổng của Hub, Hub báo tới máy chủ biết có thiết bị cắm vào Chủ USB đưa ra lệnh cho phép và đặt lại cổng đó, thiết bị gắn thêm đáp lại và chủ USB yêu cầu một bản mô tả từ thiết bị Từ bản mô tả thiết bị chủ USB biết yêu cầu, trạng thái, loại thiết bị và lớp hỗ trợ nếu có của thiết bị Chủ USB gắn cho thiết bị một địa chỉ duy nhất và gọi phần mềm điều khiển cho thiết bị Đối với các thiết bị được hỗ trợ driver trong hệ thống các thiết bị có một số đặc điểm chung được xếp vào thuộc một lớp Khi một thiết bị khai báo thuộc một lớp nào đó hệ thống gọi phần mềm điều khiển và cho phép trao đổi dữ liệu mà không cần nạp thêm driver cho thiết bị Ví dụ một thiết bị khai
báo với hệ thống thuộc lớp HID (Human Interface Device) khi đó thiết bị được hệ thống tự
động nhận và nạp Device Driver điều khiển cho nó Bảng 3.2 mô tả một số lớp hỗ trợ cho các thiết bị thông dụng trong Windows
Trang 33
Hình 3.4 Kết nối USB theo hình sao qua các Hub
Bảng 3.2 Các lớp thiết bị hỗ trợ theo hệ điều hành Class (lớp) Loại thiết bị được hỗ trợ
Audio Audio, thiết bị nghe nhạc, hệ thống âm thanh
Chip/smart card interface devices
Common class (CCS) Một số thiết bị thông dụng
Communications device Modems, Telephones và các giao diện mạng
HID Các thiết bị giao tiếp người – máy như: chuột, bàn phím,v.v.…
FrDA Thiết bị hồng ngoại
Physical interface devices Joysticks và các thiết bị khác
POS terminals Máy bán hàng, máy tính tiền và các thiết bị EFTPOS
Power Các thiết bị giám sát và điều khiển nguồn, ví dụ như: quản lý pin
3.3 CÁC KIỂU TRUYỀN USB
Dữ liệu trao đổi với giữa thiết bị USB với máy tính sử dụng một trong bốn kiểu truyền là: truyền điều khiển, truyền ngắt, truyền khối và truyền theo kiểu đồng bộ
1) Truyền điều khiển (Control Transfers): thường sử dụng để cài đặt phần cứng và đưa
ra các lệnh cho điều khiển thiết bị Kiểu truyền này được làm việc ở mức ưu tiên cao với khả năng kiểm soát lỗi tự động Mỗi gói tin có thể truyền lên đến 64byte
Trang 342) Truyền ngắt (Interrupt Transfers): sử dụng cho các thiết bị cần cung cấp một lượng dữ
liệu nhỏ (chỉ truyền theo hướng vào) và tuần hoàn chẳng hạn như: chuột, bàn phím đều
sử dụng kiểu truyền ngắt Không giống như cơ chế ngắt, ở đây không có yêu cầu ngắt được gửi tới chủ USB mà máy tính sẽ hỏi vòng theo chu kỳ xem có thiết bị nào gửi dữ liệu tới không Thường thiết bị gửi tới chủ máy tính 8 byte dữ liệu trong một lần truyền Các thiết bị sử dụng kiểu truyền ngắt như bàn phím, chuột hay cũng có thể dùng cho một thiết bị đo lường khác
3) Truyền theo khối (Bulk Transfers): khi có lượng dữ liệu lớn cần truyền và cần kiểm
soát lỗi tryuền, nhưng lại không có yêu cầu thúc ép về thời gian truyền thì dữ liệu thường được truyền theo kiểu khối Kiểu truyền này thường áp dụng cho các thiết bị như máy in, máy quét
4) Truyền đồng bộ (Isochronous Transfers): khi lượng dữ liệu cần truyền lớn với tốc độ
dữ liệu đã được qui định, chẳng hạn như dùng cho card âm thanh thì thường áp dụng truyền đồng bộ Theo cách truyền này một giá trị tốc độ dữ liệu xác định được duy trì Việc hiệu chỉnh lỗi không được thực hiện vì các lỗi lẻ tẻ cũng không gây ảnh hưởng đáng kể đến chất lượng cuộc truyền
Trong lĩnh vực đo lường và điều khiển bằng máy tính thường sử dụng kiểu truyền điều khiển vì có mức ưu tiên cao và có thể kiểm soát được lỗi Ngoài ra còn có thể thực hiện được giao thức truyền riêng trong một số trường hợp ứng dụng có thể tiếp tục xử lý
3.4 GIAO DIỆN VẬT LÝ BUS USB
Bus USB có hai kiểu đầu nối thông dụng: kiểu A và kiểu B, thiết kế như vậy nhằm mục đích không xảy ra đấu nối nhầm giữa đầu cắm với thiết bị và đầu cắm với Hub Khác với chuẩn RS 232, việc đấu nối ở bus USB không chia ra các kiểu đấu nối khác nhau, chẳng hạn nối thẳng và bắt chéo Bus USB sử dụng một Cable bốn sợi dây để nối với các thiết bị, trong đó một cặp đường truyền hai sợi xoắn được dùng làm các dữ liệu vi sai (D+
và D-) còn hai dây làm nguồn nuôi 5V và nối đất (GND) (hình 3.5)
Hình 3.5 Cable USB Cable nối luôn thực hiện sự liên kết 1:1, nghĩa là Cable chỉ nối với Hub và thiết bị Kết nối qua Cable USB sử dụng 4 đường dẫn có màu khác nhau qui định cho các tín hiệu trên bus
Bảng 3.3 Các dây dẫn trong USB Chân Tên gọi Màu dây Mô tả
GND
Đỏ Trắng Xanh lục Đen
+5VCC
Dữ liệu (D-)
Dữ liệu (D+) Nối đất Các ổ cắm phía sau máy tính thường là kiểu đầu nối A, qua đó có thể nối trực tiếp các thiết bị USB vào máy tính PC Các thiết bị có tốc độ thấp chẳng hạn như chuột cũng có thể đấu thẳng vào ổ cắm này bằng một phích cắm cũng kiểu A
Trang 35a) b)
Hình 3.6 Đầu cắm USB kiểu A trên máy tính và đầu cắm kiểu B trên thiết bị
Hình 3.7 Đánh số các chân nối ổ cắm USB và cab nối kiểu A và B
Ngoài các đầu cắm thông dụng A và B bus USB còn có các đầu cắm kiểu Mini và Micro sử dụng cho các thiết bị nhỏ di động như: máy quay phim, máy chụp, điện thoại di động
Trong các trường hợp khác thiết bị thường có một ổ cắm kiểu B, việc đấu nối máy tính được thực hiện bằng một Cable kiểu A-B (hình 3.8)
Hình 3.8 Kết nối USB và Cable
Các Cable dùng để kéo dài khoảng cách từ máy tính đến các thiết bị thường là kiểu A-A Ngày nay, các Cable nối 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 mà lựa chọn Cable cho phù hợp
Một đặc tính khác là các thiết bị USB có thể có tốc độ truyền dữ liệu khác nhau: tốc
độ thấp (Low – Speed) và tốc độ toàn phần (Full – Speed) Nên có thể xảy ra trường hợp
các thiết bị có tốc độ cao lại được kết nối với máy tính qua một Cable có tốc độ truyền thấp Để khắc phục tình trạng này tất cả các Cable nối đều được chế tạo để thích ứng với tốc độ cao Loại Cable truyền với tốc độ thấp được chỉ định dùng cho các thiết bị, cụ thể được nhà sản xuất chỉ rõ khi cung cấp
Qua ổ cắm USB có thể lấy ra địên áp +5V với dòng điện tiêu thụ khoảng 100mA, trong một số trường hợp có thể lấy ra dòng lên đến 500mA Hai đường dẫn D+ và D- cho phép đấu nối với các chip USB chuyên dụng hay các vi điều khiển có tích hợp thêm giao tiếp USB
Tín hiệu trên hai đường D+ và D- là các tín hiệu vi sai với mức điện áp bằng 0/3.3V Điện áp nguồn nuôi ở USB có thể lên tối đa +5.25V và khi chịu dòng tải lớn có thể giảm xuống + 4.2V
Trang 36Khi ghép nối các thiết bị với bus USB 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
(Bus – Powered) Trong nhiều trường hợp cả hai chế độ nguồn nuôi có thể cùng tồn tại để
cho phép lựa chọn theo cách thiết kế của USB, 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 tự động được ngắt Các thiết bị USB được chia ra gồm 3 chế độ nguồn:
Chế độ Low power: dòng thiết bị được cung cấp tối đa 100mA, điện áp 4.4V ÷ 5.25V
Chế độ High power: dòng cung cấp trong chế độ này có thể lên đến 500mA, điện áp 4.7V ÷ 5.25V
Chế độ Self power: nguồn nuôi được cung cấp từ ngoài
Máy tính nhận biết có một thiết bị Low –Speed (1.5Mbps) hay Full – Speed (12Mbps) được cắm vào thông qua điện áp trên trên chân D+ hay trên chân D- nhảy lên mức cao Vì vậy, khi thiết kế các mạch giao tiếp với máy tính qua cổng USB cần chú ý nối chân D+ lên nguồn nuôi (+5V) đối với thiết bị Full - Speed Còn đối với thiết bị Low - Speed cần nối chân D- nối lên nguồn nuôi Hình 3.9 và hình 3.10 mô tả sơ đồ đấu nối Cable qua cổng USB cho thiết bị Full - Speed và Low - Speed Về phía chủ USB hay hub gồm hai điện trở nối dây D+ và D- xuống đất, như vậy bình thường khi không có thiết bị cắm vào, 2 đường này có mức điện áp là 0V Khi có một thiết bị được kết nối vào cổng, một trong hai đường dây có điện áp nhảy lên mức cao Bằng cách này Hub đã nhận biết một thiết bị mới được cắm thêm vào hệ thống bus
Hình 3.9 Kết nối với thiết bị USB Full - Speed
Hình 3.10 Kết nối với các thiết bị USB Low - Speed
Mỗi Hub và mỗi dây Cable đều gây ra sự làm trễ tín hiệu nhưng thời gian trễ không được vượt quá giá trị cực đại đã được qui định Bus USB cho phép đến 7 Hub đấu nối tiếp nhau, do vậy có thể đấu nối tối đa là 127 thiết bị vào bus USB Trên thực tế con số này là
lý thuyết vì tuy có thể đấu nối đến 127 thiết bị nhưng càng nhiều thiết bị đấu nối thì tốc độ truyền càng chậm do dải thông của toàn bộ bus bị phân chia đến từng thiết bị đấu vào bus
Trang 373.5 GIAO THỨC TRUYỀN
1) Các trường trong truyền thông USB
Thứ tự bit được truyền qua bus USB là bit có trọng số nhỏ nhất (LSB) được truyền
đầu tiên cho đến bit MSB USB có 4 loại gói truyền trên bus là: gói nhận dạng (Token), gói
dữ liệu (Data), gói khởi đầu khung (Start Of Frame) và gói bắt tay (Handshake) Trong
mỗi gói lại gồm có nhiều trường, truyền thông USB có các loại trường sau:
Trường đồng bộ (SYNC): tất cả các gói đều được bắt đầu bằng trường SYNC, đó là
chuỗi nhị phân mã NRZI (Non Return to Zero Inverted) của chuỗi “KJKJKJ” Việc
sử dụng SYNC làm khởi đầu cho một gói nó giống như bit Start trong RS 232 Tất
cả các gói đều giới hạn giữa SOP (Start – Of - Packet) và EOP (End – Of – Packet)
Trường nhận dạng (PID): theo sau ngay trường SYNC trong mỗi gói của USB,
gói có chiều dài 8bit gồm 4bit thấp là 4bit nhận dạng gói, 4bit cao là đảo của 4bit thấp nhằm kiểm soát lỗi khi truyền Trường PID mô tả loại gói sẽ được truyền sau
nó Cả chủ USB và các thiết bị USB đều nhận biết được các mã trường nhận dạng
đã được qui định Nếu mã nhận được là không nằm trong các mã đã qui định chủ USB sẽ không hỗ trợ Sau đây là bảng danh sách mã trường nhận dạng của các loại gói trong USB
Bảng 3.4 Các loại gói truyền trong USB
Token In 1001B Chủ USB đọc từ thiết bị
SOF 0101B Khởi đầu khung và số khung
SETUP 1101B Chủ USB cài đặt thiết bị
Data DATA0 0011B Gói dữ liệu data0
DATA1 1011B Gói dữ liệu data1
NAK 1010B Thiết bị ngoài không chấp nhận dữ liệu
hay dữ liệu truyền bị hỏng
Handshake STALL 1110B Điểm cuối tạm ngưng hay không hỗ trợ
Special PRE 1100B Chủ USB đưa ra cho phép đường ra của bus trao đổi với các thiết bị có tốc độ thấp
Trường địa chỉ (ADDR): là địa chỉ riêng để truy cập tới thiết bị Thiết bị có thể nhận
dữ liệu hay truyền dữ liệu về máy chủ (phụ thuộc vào giá trị gói nhận dạng PID) thông qua địa chỉ của nó Trường địa chỉ sử dụng 7 bit [A0 ÷ A6] Trường địa chỉ có trong các gói IN, SETUP, OUT Mỗi địa chỉ, chỉ định cho một thiết bị đơn lẻ khi bắt đầu được cấp nguồn các thiết bị có địa chỉ mặc định là zero và chủ USB nhận bảng
mô tả của thiết bị thông qua địa chỉ mặc định này
Trường điểm cuối (End Point): một trường điểm cuối sử dụng 4 bit cho phép lựa
chọn điểm cuối trong thiết bị Trừ điểm cuối zero, số điểm cuối là riêng biệt cho từng thiết bị chức năng Một điểm cuối là địa chỉ của một bộ đệm trong thiết bị, trường địa chỉ được định nghĩa trong các gói IN, SETUP và OUT Từ điểm cuối tới chủ USB thiết lập một kênh trao đổi thông tin gọi là đường ống Tất cả các thiết bị chức năng đều hỗ trợ một đường ống mặc định với điểm cuối là zero, chủ USB sẽ trao đổi với thiết bị mới gắn vào thông qua đường ống này
Trang 38 Trường số khung: trường số khung có độ dài 11bit, nó được gửi trong gói SOF
(Start Of Frame Packets) SOF được gửi bởi chủ USB theo chu kỳ 1ms 0.005ms
Trường dữ liệu: trường dữ liệu có độ dài từ 0 đến 1023byte, các byte được gửi đi
lần lượt Trong mỗi byte dữ liệu bit dữ liệu nhỏ nhất được gởi trước và cuối cùng là bit bit có trong số lớn nhất (Msb)
2) Các loại gói trong truyền thông USB
Gói nhận dạng (Token Packets): chỉ cho biết loại truyền ngay sau nó Có 3 loại gói
nhận dạng:
o IN: Báo thiết bị biết chủ USB muốn đọc thông tin
o OUT: báo cho thiết bị rằng chủ USB muốn gởi thông tin
o SETUP: được sử dụng bắt đầu trong truyền điều khiển
Dạng chung các gói nhận dạng như hình sau:
Hình 3.11 Gói nhận dạng Các gói nhận dạng mà USB sử dụng là một trong các gói IN, OUT, Setup Mỗi gói
đều có 4 trường: PID có chiều dài 1 byte chỉ ra loại gói, 7 bit địa chỉ (Address), 4 bit điểm cuối (End point) và cuối cùng là 5 bit kiểm tra lỗi truyền (CRC)
Gói khởi đầu khung (Start Of Frame): gói khởi đầu khung được phát ra từ chủ USB
theo chu kỳ 1.00ms 0.005ms, gói khởi đầu khung (SOF) bao gồm các trường:
o 8bit: PID nhận dạng loại gói
o 11bit: số khung
o 5bit: kiểm tra lỗi CRC5
Hình 3.12 Gói SOF
Gói dữ liệu (Data Packets): một gói dữ liệu bao gồm một trường PID (8bit) Trường
dữ liệu có chiều dài nằm trong khoảng 0 1023byte và 16bit CRC Có hai loại gói
dữ liệu được nhận biết qua trường PID là Data 0 và Data 1, hai loại gói này được định nghĩa để hỗ trợ trong truyền dữ liệu đồng bộ
Hình 3.13 Gói dữ liệu
Trang 39 Gói bắt tay (Handshake Packets): có 3 loại gói bắt tay
ACK: trả lời dữ liệu đã nhận thành công
NAK: báo thiết bị không trả lời dữ liệu nhận hay nhận bị lỗi Tất cả các gói bắt tay đều được truyền theo kiểu ngắt để báo tin cho chủ USB biết dữ liệu không được gửi
STALL: chỉ ra rằng thiết bị USB là không có khả năng truyền hoặc nhận dữ liệu hay đường ống yêu cầu là không hỗ trợ
Hình 3.14 Gói bắt tay
3.6 CÁC QUÁ TRÌNH TRUYỀN USB
1) Truyền điều khiển
Truyền điều khiển được thực hiện qua 3 giai đoạn: Setup, Data và Status Đối với thiết bị Low - Speed kích thước gói tin là 8byte, còn đối với Full - Speed kích thước gói có thể là 8, 16, 32 hay 64byte
a) Giai đoạn 1(Setup): gồm 3 gói tin:
+ Gói nhận dạng: do chủ USB gửi tới thiết bị USB Trong gói này chủ USB gửi địa chỉ và điểm cuối của thiết bị
+ Gói nhận dạng: được gửi ngay sau khi gói Setup kết thúc và trường PID của gói luôn là kiểu Data0
+ Gói bắt tay: gói cuối cùng do thiết bị USB trả lời: ACK nếu không có lỗi, NAK nếu
có lỗi xảy ra
Hình 3.15 Các gói tin trong giai đoạn 1 của truyền điều khiển
b) Giai đoạn 2 (Data): giai đoạn này cũng chứa 3 gói tin: nhận dạng, dữ liệu và bắt tay
(hình 3.16)
Gói dữ liệu: chỉ ra dữ liệu theo chiều vào (IN) hay ra (OUT)
Gói dữ liệu: chứa dữ liệu cần truyền
o Trường hợp dữ liệu có chiều từ thiết bị USB vào chủ USB Nếu không có lỗi xảy ra, dữ liệu sẽ được gửi về chủ USB Trường hợp có lỗi xảy ra tùy theo lỗi
mà thiết bị USB gửi trả lời bằng “STALL” hoặc “NAK”
Trang 40o Trong trường hợp dữ liệu có chiều từ chủ USB đến thiết bị USB thì gói dữ liệu sẽ được gửi tới thiết bị
o Gói bắt tay: khi nhận được dữ liệu chủ USB sẽ trả lời bằng gói ACK tới thiết
bị Trong trường hợp ra tùy theo dữ liệu mà thiết bị USB nhận có lỗi hay không mà nó gửi trả lời chủ USB bằng một trong các gói: ACK, NACK, STALL
Hình 3.16 Các gói tin trong giai đoạn 2 của truyền điều khiển
c) Giai đoạn 3 (Status Stage): trả về trạng thái toàn bộ quá trình
Chiều vào: tùy theo quá trình trao đổi có lỗi xảy ra hay không mà thiết bị USB sẽ trả
lời tới chủ USB một trong các tín hiệu: ACK, STALL hay NACK (hình 3.17a)
Chiều ra: chủ gửi các gói trả lời đến thiết bị USB
Hình 3.17 Các gói trong giai đoạn 3 của truyền điều khiển
2) Truyền ngắt
Không giống với phương thức trao đổi tin theo ngắt mà chúng ta đã xét tại chương
2, tức là tín hiệu yêu cầu trao đổi tin do thiết bị đưa ra và yêu cầu CPU phục vụ ngắt cho
nó Truyền ngắt trong USB hoàn toàn do chủ USB hỏi vòng Nếu một thiết bị USB chủ động yêu cầu nó phải đợi đến khi chủ USB hỏi tới và đáp ứng Quá trình truyền ngắt diễn