Giao tiếp máy tính với vi điều khiển pic18f4550 qua cổng USB
Trang 1Chương 1:
GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu chung về Oscilloscope
Hình vẽ 1.1: Máy hiển thị sóng Oscilloscope
Máy Hiện sóng “oscilloscope” là một thiết bị hiển thị đồ thị - nó vẽ ra đồ thị của một tín hiệu điện Trong hầu hết các ứng dụng, đồ thị chỉ ra tín hiệu thay đối thế nào theo thời gian: Trục dọc (Y) biểu diễn điện áp và trục ngang (X) biểu diễn thời gian Cường độ hay
độ sáng của sự hiển thị đôi khi được gọi là trục Z Đây là đồ thị đơn giản có thể chỉ ra cho
ta nhiều điều về một tín hiệu
Sau đây là một số công năng:
- Nhận dạng tín hiệu (Xung vuông, răng cưa, hình sin, tín hiệu hình, tín hiệu
tiếng…)
- Xác định rõ các giá trị thời gian và mức điện áp và đường đi của một tín hiệu
- Tính toán được tần số của một tín hiệu dao động
- Nhận thấy “các phần động” của một mạch điện được biểu diễn bởi tín hiệu
- Chỉ ra nếu một thành phần lỗi làm méo dạng tín hiệu
- Tìm ra tín hiệu như thế nào là dòng một chiều hay dòng xoay chiều
Trang 2- Chỉ ra tín hiệu như thế nào là nhiễu và nếu có thì nhiễu thay đổi thế nào theo thời gian
Hình vẽ 1.2: Dạng đồ thị trên Oscilloscope
Máy oscilloscope trông rất giống với một cái tivi nhỏ, nó có một mạng lưới được vẽ trên màn hình và có nhiều núm điều khiển hơn tivi Mặt trước của một oscilloscope thường có các phần điều khiển được chia thành các phần Dọc, Ngang và Trigger Có các điều khiển hiển thị và các đầu nối đầu vào
1.2 Chức năng của Oscilloscope
Sự hữu ích của một máy oscilloscope không bị giới hạn chỉ trong thế giới của các thiết bị điện tử Với một bộ chuyển đổi thích hợp, một máy oscilloscope có thể đo đạc được tất cả các kiểu hiện tượng Một bộ chuyển đổi là một thiết bị mà tạo ra tín hiệu điện đáp ứng lại các kích thích vật lí, ví dụ như âm thanh, áp lực cơ khí, áp suất, ánh sáng hoặc nhiệt độ
Ví dụ như, một microphone là một bộ chuyển đổi
Một kỹ sư ô tô có thể dùng máy oscilloscope để đo đạc sự rung của động cơ Một nghiên cứu sinh y khoa có thể dùng máy oscilloscope để đo đạc các sóng não Các khả năng là
vô tận!
1.3 Oscilloscope số và tương tự
Trang 3Trái lại, máy oscilloscope số lấy mẫu dạng sóng và dùng một bộ chuyển đổi tương tự/số (A/D) để chuyển đổi điện áp được đo thành thông tin số Sau đó, nó dùng thông tin số này để tái cấu trúc lại dạng sóng trên màn hình
Đối với nhiều ứng dụng, hoặc là máy oscilloscope số hoặc là máy oscilloscope tương tự
sẽ được dùng Tuy nhiên, mỗi loại máy có một số đặc tính riêng làm cho nó thích hợp hơn hoặc kém thích hợp hơn trong các tác vụ riêng
Trang 4Người ta thường thích các máy oscilloscope tương tự hơn vì nó quan trọng để hiển thị nhanh chóng các tín hiệu đang thay đổi trong thời gian thực (hay như là chúng đang diễn ra)
Các máy oscilloscope số cho phép bạn ghi lại và xem các sự kiện mà chúng có thể chỉ diễn ra duy nhất 1 lần Chúng có thể xử lý dữ liệu dạng sóng số và gửi các dữ liệu đó tới máy tính để xử lý Như vậy, chúng có thể lưu trữ dữ liệu dạng sóng số để xem và in ra sau đó
1.4 Oscilloscope tương tự
Khi bạn nối đầu dò của máy oscilloscope vào mạch điện, tín hiệu điện áp đi qua đầu dò tới hệ thống dọc của máy oscilloscope Tùy thuộc vào bạn thiết đặt chia thang đo dọc (điều khiển volts/div) như thế nào thì bộ suy hao làm giảm điện áp tín hiệu hoặc là bộ khuếch đại làm tăng điện áp tín hiệu điện áp đặt vào các bản lái tia làm cho một điểm sáng di chuyển (môt dòng electron đập vào lớp phosphor bên trong CRT tạo ra điểm sáng) Điện áp dương làm cho điểm sáng đi lên trong khi điện áp âm làm cho điểm sáng
đi xuống
Tín hiệu cũng đồng thời đi tới hệ thống trigger để khởi động hay kích một “quét ngang” Quét ngang là một thuật ngữ chỉ việc hệ thống ngang làm cho điểm sáng di chuyển ngang trên màn hình Việc kích hệ thống ngang gây ra thời gian cơ bản để di chuyển điếm sang ngang trên màn hình từ trái sang phải trong một khoảng thời gian xác định Nhiều lần quét thành các dãy nhanh làm cho chuyển động của điểm sáng được hợp thành một
đường liền nét Ở các tốc độ cao hơn, điểm sáng có thể quét ngang màn hình lên tới 500,000 lần mỗi giây
Trang 5Hình vẽ 1.4: Oscilloscope tương tự
Cùng với nhau, việc quét ngang và việc lái dọc vạch ra một đồ thị tín hiệu trên màng hình Bộ kích khởi là cần thiết để ổn định hóa tín hiệu tuần hoàn Nó đảm bảo rằng lần quét bắt đầu ở cùng một điểm với tín hiệu tuần hoàn, dẫn tới một hình ảnh rõ ràng được chỉ ra trên hình sau:
Trang 6- Kích khởi máy oscilloscope Sử dụng mức kích để ổn định hóa tín hiệu tuần hoàn cũng như việc kích các sự kiện đơn
Cũng vậy, việc điều chỉnh các điều khiển tiêu cự và cường độ cho phép bạn tao ra hình ảnh sắc nét và dễ nhìn (không bị chói)
1.5 Sơ lượt về máy Oscilloscope số
1.5.1 Khái niệm về Oscilloscope số
Để tìm hiểu khái niệm về Osilloscope số ta cần phải hiểu được thế nào là một Osilloscope
có nhớ Osilloscope có nhớ là loại Osilloscope dùng để khảo sát các loại tín hiệu tức thời, tuần hoàn chậm, hay tín hiệu ngắn, tín hiệu quá độ Dải tần số có thể đến 150MHz Dải tín hiệu từ hàng chục mV đến hàng trăm vôn
Osilloscope số là loại dao động ký có nhớ số Nguyên lý làm việc dựa trên việc số hóa tín hiệu khảo sát nhờ bộ chuyển đổi A /D gọi là quá trình lấy mẫu và chuyển đổi Các mẫu được ghi vào bộ nhớ, sau đó được biến đổi trở lại thành tương tự phục vụ cho mục đính hiển thị
1.5.2 Cấu trúc Oscilloscope số
Hình vẽ 1.6: Cấu trúc của Oscilloscope số
- Tín hiệu đo: Xung vuông, răng cưa, hình sin, tín hiệu hình, tín hiệu tiếng, áp lực
cơ khí, áp suất, ánh sáng hoặc nhiệt độ…
- Mạch đo: Tùy thuộc vào loại tín hiệu đầu vào mà mạch đo sẽ tương tự như là
mạch khuếch đại và chuyển đổi tín hiệu Mạch khuếch đại thường là mạch có hệ
số khuếch đại >0 Mạch chuyển đổi đóng vai trò chuyển đổi từ tín hiệu sau mạch khuếch đại về loại tín hiệu phù hợp với loại tín hiệu đầu vào của bộ ADC Thông thường tín hiệu mà các oscilloscope đo thường là các tín hiệu dòng hoạc tín hiệu
áp Vì vậy mạch khuếch đại thường là các mạch giảm dòng hoặc mạch phân áp
Mạch
đo
Bộ ADC
Bộ VXL
Máy tính hiển thị kết quả Tín
hiệu đo
Trang 7sử dụng các phần tử như biến dòng, biến áp, linh kiện bán dẫn, mạch điện trở, điện cảm, điện dung…
- Bộ ADC: Là bộ chuyển đổi tín hiệu tương tự thành tín hiệu số Tín hiệu đo sau
khi đi qua mạch đo sẽ được đưa vào bộ ADC Bộ ADC sẽ chuyển đổi dạng tín hiệu này từ tín hiệu tương tự thành tín hiệu số để đưa đến bộ vi xử lí Trên thực tế
bộ ADC có độ phân giải khác nhau: 8bit, 10bit, 12bit, 16bit, 24bit Độ phân giải càng lớn thì tín hiệu đầu ra số sẽ càng gần với tín hiệu đầu vào tương tự Đầu ra số của bộ ADC có thể là bus song song hoặc nối tiếp
- Bộ vi xử lí: Bộ vi xử lí đóng vai trò xử lí trung tâm, nó nhận kết quả đo từ bộ
ADC để gia công và xử lí trước khi gửi về máy tính để hiển thị Bộ vi xử lí được
sử dụng phổ biến hiện nay là các họ vi điều khiển như 8051, AVR, PIC, PSOC, ARM với tốc độ xử lí phù hợp Ngày nay các vi điều khiển được tích hợp thêm trong nó các bộ ADC có khả năng trích mẫu tốc độ cao, ngoài ra nó còn có khả năng ghép nối với máy tính theo các chuẩn ghép nối Ngoài các khả năng trên một
ưu điểm lớn nữa của bộ vi xử lí là khả năng lưu trữ thông tin, khả năng này phù hợp cho các cho các osilloscope tốc độ cao
- Máy tính hiển thị kết quả đo: Máy tính sẽ nhận các thông tin từ bộ vi xử lí sau
đó gia công và hiển thị Việc truyền nhận thông tin từ vi xử lí đến máy tính và ngược lại sẽ được thực hiện qua các chuẩn ghép nối như RS232, LPT, USB, khe cắm mở rộng…
1.5.3 Nguyên lý hoạt động của Oscilloscope số
Một vài hệ thống mà được cấu thành từ các máy oscilloscope số thì cũng tương tự như bằng các máy oscilloscope tương tự; tuy nhiên, các máy oscilloscope số bao gồm thêm hệ thống xử lý số liệu
Với hệ thống thêm vào, máy oscilloscope số thu thập số liệu cho toàn bộ dạng sóng và sau đó hiển thị chúng Khi các bạn nối đầu đo (dò) của máy oscilloscope số vào mạch điện; hệ thống dọc sẽ điều chỉnh biên độ của tín hiệu như trong máy oscilloscope tương
tự
Trang 8Tiếp tới, bộ chuyển đổi tương tự/số trong hệ thống thu thập lấy mẫu tín hiệu ở các thời điểm rời rạc và chuyển đổi điện áp tín hiệu ở các điểm này thành giá trị số, gọi là các điểm lấy mẫu Xung lấy mẫu của hệ thống ngang quy định bộ ADC lấy mẫu bao nhiên lần Tốc độ mà ở đó xung “ticks” được gọi là tốc độ lấy mẫu và đươc đo bằng số mẫu trên giây (Xem hình vẽ dưới)
Hình vẽ 1.7: Nguyên lý hoạt động của Oscilloscope số
Các điểm mẫu từ ADC được lưu trữ trong bộ nhớ như là các điểm dạng sóng Có nhiều hơn một điểm mẫu có thể cấu thành nên một điểm dạng sóng
Cùng với nhau, các điểm dạng sóng cấu thành nên một bản ghi dạng sóng Số điểm sóng được dùng để tạo nên một bản ghi dạng sóng được gọi là độ dài bản ghi Hệ thống kích khởi quy định điểm bắt đầu và điểm kết thúc bản ghi Màn hình nhận các điểm bản ghi này sau khi chúng được lưu trữ trong bộ nhớ
Tùy thuộc vào khả năng của máy oscilloscope thiết kế, việc xử lý thêm các điểm mẫu có thể được tiến hành để làm nâng cao chất lượng hiển thị Bộ tiền kích khởi có thể hữu ích cho phép xem các sự kiện trước điểm kích
Trang 9Về cơ bản, với một máy máy oscilloscope số cũng như với máy máy oscilloscope tương
tự, cần điều chỉnh các thiết lập dọc, ngang và kích khởi để có thể đo đạc được
Trang 10CHƯƠ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 đặc điểm ngoại vi:
- Dòng vào/ra (sink/source) cao 25mA/25mA
- Ba ngắt ngoài
Trang 11- 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 ( TCY /16 )
- 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
Trang 12- 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ảng 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 13Hình 2.1: Sơ đồ khối PIC18F2455/2550 (28 châ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
Trang 14chí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
Thạ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ộnghưở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
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ộ chia (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 31KHZ 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)
Trang 15Hình 2.2: Sơ đồ khối PIC18F4455/4550 (40/44 chân)
Trang 16Hình 2.3: Sơ đồ khối dao động
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
Trang 17- 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)
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:
Khả năng tự lập trình: Họ vi điều khiển PIC18F2455/2550/4550 có khả năng tự nạp
Trang 18chươ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
Hình 2.4: Bản đồ tổ chức bộ nhớ họ vi điều khiển PIC18F2455/2550/4550 2.4 Khối Timer
Họ vi điều khiển PIC18 có 4 bộ timer: timer0, timer1, timer2 và timer3 Mỗi timer có tính năng riêng
Timer0:
- Đị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
Trang 19- Ngắt khi tràn
Timer1:
- Chọn bằng phần mềm timer hay counter 16 bit
- 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)
Trang 20đượ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 21Hình 2.5: 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:
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 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-peed) 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)
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
PWM Duty Cycle=(CCPRxL : CCPxCON <5 : 4 >*Tosc*(TMR2 Pr esscale Value)
Trang 22khiể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
Hình vẽ 2.6: Sơ đồ khối USB
- 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
Trang 23dù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
2.7 Đ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.7: Các ngắt của khối USB
Trang 242.8 Khối biến đổi ADC 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)
Hình 2.8: Sơ đồ mạch điện thu thập dữ liệu cho biến đổi A/D
Chọn xung nhịp biến đổi A/D: Thời gian biến đổi A/D mỗi bit được định nghĩa là TAD Yêu cầu thời gian biến đổi A/D là 11* TAD cho biến đổi A/D 10 bit Có 7 tùy chọn cho TA:
- 2 TOSC
- 4 TOSC
Trang 25Hình 2.9: Sơ đồ khối biến đổi A/D
Bảng 2.10: TAD theo tần số hoạt động của vi điều khiển
Trang 26Để 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 Thời gian biến đổi A/D = TACQ 11* TAD TAD1 , trong đó TAD1 là thời gian tụ
xả
2.9 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.10 Ngắt
PIC18F2455/2550/4455/4550 có nhiều nguồn tín hiệu ngắt và hai mức độ ưu tiên ngắt Vector ngắt ưu tiên mức cao là 000008h và vector ngắt ưu tiên mức thấp là 000018h Có
10 thanh ghi được dùng để điều khiển ngắt là:
- RCON
- INTCON
Trang 27Mỗ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
Hình 2.12: Sơ đồ logic các tín hiệu ngắt
Trang 28Mứ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.11 Các chi tiếc đặ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)
- 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
- Khởi động 2 tốc độ
Trang 30CHƯƠNG 3:
SƠ LƯỢT VỀ CHUẨN USB 2.0
3.1 Giới thiệu chung về USB
3.1.1 Khái niệm về USB
USB (Universal Serial Bus) là bus nối tiếp đa năng cho phép các thiết bị đầu cuối giao tiếp với máy tính chủ (Host Computer)
3.1.2 Các mục tiêu hướng tới khi sử dụng USB
- Dễ dàng mở rộng các thiết bị đầu cuối của PC
- Cung cấp giải pháp chi phí thấp song vẫn hỗ trợ truyền dẫn với tốc độ lên đến 480Mb/s
- Hỗ trợ ứng dụng thời gian thực như voice, audio, video,
- Giao thức linh hoạt cho các chế độ hỗn hợp: isochronous data transfers và
asynchronous messaging
- Tích hợp công nghệ thiết bị tiện nghi
- Được Windows và các hệ điều hành khác hỗ trợ do đó có thể không cần driver mức thấp cho các thiết bị USB
- Đa năng do đó nhiều thiết bị có thể ghép nối với PC thông qua chuẩn USB
- Độ tin cậy cao
3.1.3 Mô tả hệ thống USB
Một hệ thống USB được mô tả bởi ba định nghĩa: Kết nối USB, các thiết bị USB và USB host Kết nối USB được hiểu là kiểu kết nối mà trong đó các thiết bị USB được kết nối và giao tiếp với máy tính chủ Kết nối USB bao gồm các vấn đề sau:
- Kiến trúc Bus: Mô hình kết nối giữa các thiết bị USB và Host
Trang 31- Những mối quan hệ Inter-layer : Dưới dạng một tập khả năng, các tác vụ USB được thực hiện tại mỗi lớp trong hệ thống
- Các mô hình luồng dữ liệu: Là hình thức mà trong đó dữ liệu di chuyển trong hệ thống qua USB
Lập trình USB: USB cung cấp một sự kết nối dùng chung Việc truy cập tới kết nối được lập trình theo thứ tự để hỗ trợ truyền dữ liệu đẳng thời và khử sự phân xử ban đầu
Hình 3.1: Mô hình bus USB 3.1.5 Máy chủ USB (USB Host)
Chỉ có duy nhất một Host trong một hệ thống USB bất kỳ Giao diện USB tới hệ thống máy chủ được xem như bộ điều khiển Host Bộ điều khiển Host có thể được thực hiện
Trang 32trong một kết hợp gồm phần cứng, chương trình cho vi điều khiển (firmware) hoặc phần mềm Một Hub gốc (root hub) được tích hợp chỉ trong hệ thống Host để cung cấp một hoặc nhiều điểm lắp thêm
3.1.6 Các thiết bị USB
Thiết bị USB có thể là một trong các thiết bị sau:
- Hub: cung cấp điểm lắp thêm vào USB
- Các chức năng: Cung cấp các khả năng cho hệ thống như một kết nối ISDN,
digital joystick, hoặc speakers
- Thiết bị hiểu được giao thức USB
3.1.7 Cáp USB
USB truyền tín hiệu và nguồn qua một cáp 4 sợi hình 3.2:
- Vbus: Điện áp cung cấp cho thiết bị
- Tín hiệu D+
- Tín hiệu D-
- Dây đất GND
Có 3 tốc độ truyền dữ liệu:
- USB tốc độ cao (USB high-speed): 480Mb/s
- USB toàn tốc (USB full-speed): 12Mb/s
- USB tốc độ thấp (USB low-speed): 1.2Mb/s
Hình vẽ 3.2: Cable USB
Trang 33Cáp USB bao gồm 4 dây, D+ và D- được dùng để truyền tín hiệu, Vbus và GND để cấp nguồn cho thiết bị (Thường thì Vbus =5V còn GND=0V tại nguồn) USB cho phép chiều dài các đoạn cáp có thể thay đổi lên tới vài mét
Ở phía máy chủ Host thì D+ và D- được nối đất qua các điện trở Rpd còn về phía thiết bị ngoại vi, các đầu dây D+, D- được bảo vệ bởi điện trở cuối (đó chính là các điện trở Rpu Thiết bị tốc độ cao hoặc toàn tốc cần có điện trở nối +3.3 V cho đầu D+, thiết bị tốc độ thấp cần có điện trở nối lên 3.3 V cho đầu D- Những điện trở này tạo nên các mức điện thế khác nhau giữa D+ và D- giúp cho máy chủ phát hiện được việc cắm vào hay rút ra của thiết bị cũng như tốc độ truyền dữ liệu của thiết bị
3.2 Mô hình luồng dữ liệu USB
3.2.1 Các thành phần trong việc kết nối USB
Việc thực hiện kết nối USB gồm các thành phần:
- Thiết bị vật lý USB (USB physical device): Là thiết bị tách rời được nối với Host thông qua cáp USB để thực hiện các chức năng theo yêu cầu của người dùng cuối
- Phần mềm khách (Client software): Phần mềm thực thi ở trên Host, tương ứng với thiết bị USB Phần mềm này có thể được hệ điều hành cung cấp hoặc đi kèm theo thiết bị của nhà sản xuất
- Phần mềm hệ thống USB (USB system software): Là phần mềm hỗ trợ USB trong
hệ điều hành riêng Phần mềm hệ thống USB được cung cấp bởi hệ điều hành, nó độc lập với thiết bị USB và phần mềm khác
- USB Host Controller (Giao diện BUS của Host): Là phần cứng và phần mềm cho phép thiết bị USB gắn với Host.Với thiết bị vật lý USB có các lớp sau:
- Lớp giao diện BUS USB (USB bus Interface) có vai trò trong việc kết nối vật lý/báo hiệu/gói tin giữa thiết bị USB với Host
- Lớp thiết bị USB (USB device Layer) là nơi phần mềm hệ thống USB thực hiện các hoạt động chung với thiết bị USB
Trang 34- Lớp chức năng (Function layer): Cung cấp các khả năng bổ sung tới Host thông qua một client sofware thích hợp
Hình vẽ 3.3: Mô hình luồng dữ liệu USB 3.2.2 Bus Topology
Bus Topology gồm 4 thành phần chính:
- Host và các thiết bị: đây là thành phần sơ cấp của 1 hệ thống USB
- Cấu trúc vật lý: cho thấy các thành phần của USB được nối với nhâu như thế nào
- Cấu trúc logic: cho thấy vai trò và trách nhiệm của các thành phần USB khác nhau và USB xuất hiện như thế nào từ hình phối cảnh của Host và 1 thiết bị
- Mối liên quan giữa chức năng và phàn mềm khách (Client Software)
3.2.2.1 USB Host
Trang 35Hình vẽ 3.4: Kết cấu Host
Kết cấu logic của Host được chỉ ra trong hình trên gồm có:
- Bộ điều khiển Host
- Phần mềm hệ thống USB đã được gộp chung (thực chất nó gồm: USB Driver, Host Controller và Host software)
- Phần mềm khách (Client Software)
3.2.2.2 Các thiết bị USB
Hình vẽ 3.5: Kết cấu thiết bị vật lý
Kết cấu logic của một thiết bị USB vật lý trong hình trên gồm:
- Giao diện bus USB
- Thiết bị USB logic
- Chức năng
Các thiết bị USB vật lý cung cấp các chức năng bổ sung cho Host Các thiết bị USB khac
Trang 36nhau thì cung cấp các chức năng khác nhau Mặc dù vậy thì các thiết bị USB logic có nối ghép tới Host cơ bản giống nhau
3.2.2.3 Kiến trúc bus vật lý (Physical Bus Topology)
Kết nối vạt lý của các thiết bị USB thông qua kiến trúc tầng sao (tiered star topology) như hình dưới Các điểm nối USB được thông qua bởi 1 lớp thiết bị USB được hiểu là Hub Các điểm nối bổ sung được kết nối thông qua Hub được gọi là các cổng Host bao gồm cả
1 Hub được nối với nó là Hub gốc (Root Hub) Các kết nối được thực hiện tại các cổng của Hub gốc Các thiết bị cung cấp các chức năng bổ sung cho Host được hiểu là các chức năng (Funtion)
Hình vẽ 3.6: Kiến trúc bus vật lý USB 3.2.2.4 Kiến trúc bus logic
Trong khi các thiết bị vật lý được kết nối tới Host theo kiến trúc tầng sao thì quá trình truyền thông giữa Host với mỗi thiết bị logic được xem như là kết nối trực tiếp tới cổng gốc (root port) Trong trường hợp này thì bản thân các Hub cũng là các thiết bị logic, nhưng hình vẽ dưới đây không vẽ ra để cho hình vẽ đơn giản dễ hiểu
Trang 37Hình vẽ 3.7: Kiến trúc bus logic USB 3.2.2.5 Mối quan hệ giữa chức năng và phần mềm khách
Trong quá trình hoạt động, phần mềm khách nên độc lập với các thiết bị khác có thể được gắn tới USB
3.2.3 Luồng truyền thông USB
Hình vẽ 3.8: Luồng truyền thông USB
USB có thể cung cấp dịch vụ truyền thông giữa phần mềm ở trên Host và nhiều chức năng của USB, mỗi chức năng có thể có yêu cầu luồng truyền thông khác nhau cho mỗi
sự tương tác với phần mềm USB cung cấp việc sử dụng toàn bộ bus tốt hơn là việc cho phép tách ra nhiều luồng truyền thông khác nhau của 1 chức năng USB, mỗi luồng truyền thông sử dụng một vài truy cập bus để thực hiện truyền thông giữa phần mềm và chức năng của USB Mỗi luồng truyền thông sẽ kết thúc tại mỗi điểm cuối (end point) trên một thiết bị, thiết bị điểm cuối được dùng để nhận dạng luồng truyền thông
Trang 38Hình vẽ 3.9: Luồng truyền thông USB
Phần mềm ở trên Host liên lạc với thiết bị logic qua tập hợp các luồng truyền thông Tập hợp các luồng truyền thông sẽ được lựa chọn bởi nhà thiết kế phầm mềm hay phần cứng
để phù hợp với các yêu cầu truyền thông của thiết bị cũng như đặc tuyến truyền đạt của USB
3.2.4 Các loại truyền dữ liệu USB
USB truyền dữ liệu qua 1 ống dẫn (đường truyền) giữa 1 bên là bộ nhớ đệm được liên kết với 1 phần mềm khách trên máy chủ với 1 bên là 1 điểm cuối trên thiết bị USB USB cung cấp các dạng truyền tải khác nhau đã được tối ưu hóa để đáp ứng một cách thích hợp nhất các nhu cầu của phần mềm khách và chức năng
Có 4 kiểu truyền USB:
- Control tranfer (Truyền điều khiển): 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
- Isochronous tranfer (truyền đẳng thời): 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
- Interrup tranfer (Truyền ngắt): sử dụng cho các thiết bị cần cung cấp một lượng dữ
Trang 39liệ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
- Bus tranfer (Truyền khối): 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
3.3 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.10)
Hình 3.10: 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
Chân Tên gọi Màu dây Mô tả
Trang 40Bảng 3.11: Các dây dẫn trong USB
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
Hình 3.12: Đánh số các chân nối ổ cắm USB và cab nối kiểu A và B
3.4 Giao thức truyền
3.4.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)
GND
Đỏ Trắng Xanh lục Đen
+5VCC
Dữ liệu (D-)
Dữ liệu (D+) Nối đất