DANH MỤC CÁC TỪ VIẾT TẮT ADC Analog to Digital Converter Bộ chuyển đổi tương tự sang số ACK Acknowledgment Báo nhận CPU Central Processing Unit Đơn vị xử lý trung tâm EOP End Of Pa
GIỚI THIỆU PIC 18F4550
Giới thiệu chung về PIC 18F4550
PIC18F4550 là thành viên của họ vi điều khiển PIC18F2455/2550/4455/4550, một dòng vi điều khiển tiên tiến của Microchip tích hợp USB 2.0 và ADC 10-bit cùng nhiều chức năng khác Đánh giá ngắn gọn cho dòng vi điều khiển này cho thấy sự mạnh mẽ và linh hoạt, phù hợp với nhiều ứng dụng thiết kế 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 chúng, nhằm phục vụ cho việc thiết kế ở các chương sau.
2.1.1/ Các đặc điểm cổng về USB:
Tốc độ thấp (1.5 Mb/s) và tốc độ toàn phần (12 Mb/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.3 V
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 bộ (Isochronous transfer)
2.1.2/ 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.8 A
Ngủ (Sleep): CPU tắt, ngoại vi tắt, tiêu thụ dòng tiêu biểu 0.1 A
Dao động timer1: tiêu thụ dòng tiêu biểu 1.1 A, 32 KHz, 2 V
Watchdog timer: tiêu thụ dòng tiêu biểu 2.1 A
Khởi động dao động 2 tốc độ
2.1.3/ 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
8 tần số chọn được bởi người sử dụng, từ 31 KHz đế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 32 KHz
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 tắt 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
2.1.4/ Các đặc điểm ngoại vi:
Dòng vào/ ra cao 25 mA
Bốn khối timer từ timer 0 đến timer 3
Có tới 2 khối CCP (Capture/Compare/PWM)
Capture 16 bit cực đại, độ phân giải 6.25 ns (CYT/16)
So sánh 16 bit cực đại, độ phân giải 100 ns (CYT)
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)
Nhiều chế độ lối ra
Có thể chọn cực tính
Thời gian chết lập trình được
Tự động tắt và tự động khởi động
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
2.1.5/ 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 5 V 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.0 V đến 5.5 V)
Bảng 2.1: Các thông số của PIC18F
Trong họ vi điều khiển PIC18F, chữ giữa “F” cho phép Vdd từ 4.2V đến 5.5V, chữ giữa “LF” cho phép mở rộng dải Vdd từ 2.0V đến 5.5V
PIC 18F4550 có nhiều kiểu chân như: PDIP, TQFP, QFN Trong đó loại thông dụng và dễ dàng sử dụng nhất đó là PDIP
PIC 18F4550 có 40 chân và sơ đồ theo dạng PDIP như sau:
Hình 2.1: Sơ đồ chân PIC 18F4550
PIC 18F4550 có các khối chức năng như sau:
Hình 2.2: Sơ đồ khối PIC 18F4550
2.4/ Các cổng xuất nhập của PIC 18F4550:
Cổng xuất nhập (I/O Port) là phương tiện để vi điều khiển kết nối với các thiết bị và môi trường bên ngoài, tạo nên sự giao tiếp linh hoạt giữa hệ thống và thế giới bên ngoài Sự tương tác qua cổng I/O rất đa dạng và được định hình bởi mục đích sử dụng của người thiết kế, từ thu thập dữ liệu cảm biến đến điều khiển actuator và giao tiếp với các hệ thống khác Việc khai thác hiệu quả cổng I/O mở rộng khả năng ứng dụng của vi điều khiển trong tự động hóa, robot, IoT và các dự án tích hợp phần mềm với phần cứng.
Một cổng xuất nhập gồm nhiều chân với số lượng chân khác nhau tùy thuộc vào vị trí và chức năng của từng cổng Bên cạnh chức năng xuất nhập, các cổng còn được tích hợp khả năng giao tiếp và kết nối với thiết bị ngoại vi, cho phép truyền dữ liệu và điều khiển từ xa, từ đó mở rộng khả năng tương tác của hệ thống với các thiết bị như máy in, cảm biến và bộ điều khiển.
Vi điều khiển 18F4550 có 5 cổng xuất nhập bao gồm port A, port B, port C, port D, port E Cấu trúc và chức năng từng cổng cụ thể như sau:
Port A có 7 chân, mỗi chân đều có chức năng xuất nhập dữ liệu Việc Port A hoạt động ở chế độ xuất hay nhập phụ thuộc thanh ghi TRISA: để Port A ở chế độ nhập, thiết lập thanh ghi TRISA lên mức 1; để Port A ở chế độ xuất, xóa thanh ghi TRISA về mức 0.
Port A không chỉ có chức năng xuất nhập mà còn tích hợp nhiều chức năng phụ trợ quan trọng khác, bao gồm ngõ vào của bộ biến đổi A/D, bộ so sánh điện áp, MSSP và ngõ vào cho dao động thạch anh, giúp tối ưu hóa khả năng điều khiển và đồng bộ tín hiệu trong hệ thống.
Port B có 8 chân, và tất cả đều có chức năng xuất nhập dữ liệu Việc xuất hay nhập của từng chân phụ thuộc vào thanh ghi TRISB, mục đích cấu hình là để quyết định hướng cổng Port B Để Port B hoạt động ở chế độ nhập, ta thiết lập bit tương ứng trong TRISB lên 1; để Port B hoạt động ở chế độ xuất, ta thiết lập bit đó về 0 Mỗi bit của TRISB kiểm soát một chân của Port B, cho phép đọc dữ liệu khi ở chế độ nhập và gửi dữ liệu ra khi ở chế độ xuất.
Ngoài ra Port B còn tích hợp các chức năng sau: Ngõ vào bộ biến đổi A/D, ngõ vào ngắt, ngõ vào và ra của xung PWM…
Port C gồm 7 chân có chức năng xuất nhập, trừ RC4 và RC5 Việc xuất hay nhập cho các chân này được kiểm soát bởi thanh ghi TRISC: muốn Port C ở chế độ nhập thì set bit tương ứng của TRISC lên 1, còn để ở chế độ xuất thì thiết lập về 0.
Chân RC4 và RC5 chỉ có chức năng nhập và chức năng này không còn khi chức năng USB được sử dụng ở hai chân này
Ngoài ra còn có ngõ vào ra của xung PWM, Giao tiếp EUSART …
Port D có 8 chân, đều có chức năng xuất nhập dữ liệu Việc xuất hay nhập phụ thuộc vào thanh ghi TRISD; nếu muốn Port D là Port nhập thì set thanh ghi này lên, còn Port xuất thì xóa thanh ghi này về 0 Khi TRISD ở mức 1, các chân hoạt động như ngõ vào nhận tín hiệu từ bên ngoài; khi TRISD ở mức 0, các chân hoạt động như ngõ ra và có thể xuất dữ liệu ra ngoài.
Ngoài ra một số chân trong Port B còn là ngõ vào và ra của SSP, và là ngõ ra của xung PWM…
Port E có 4 chân, tất cả đều có chức năng nhập và xuất Việc chọn chế độ nhập hay xuất cho Port E phụ thuộc vào thanh ghi TRISD; muốn Port E hoạt động ở chế độ nhập thì đặt thanh ghi này ở mức 1, còn để Port E ở chế độ xuất thì đặt thanh ghi này ở mức 0 Khi TRISD được thiết lập ở 1, các chân của Port E nhận dữ liệu từ môi trường bên ngoài; khi ở 0, chúng sẽ phát tín hiệu ra ngoài theo yêu cầu của chương trình.
Ngoài ra còn có các chức năng như: ngõ vào bộ A/D, ngõ ra của SSP…
Họ vi điều khiển PIC18F2455/2550/4550 có 12 tùy chọn mạch dao động, bao gồm:
4 chế độ dao động tinh thể hoặc cộng hưởng gốm
4 chế độ xung nhịp ngoài
Một bộ dao động nội cung cung cấp xung nhịp 8 MHz và mạch dao động RC nội cung cung cấp xung nhịp 31 kHz, đồng thời hệ thống cho phép lựa chọn tần số xung nhịp từ nhiều nguồn khác nhau nhằm tối ưu độ ổn định và hiệu suất hoạt động.
125 KHz đến 4 MHz, tất cả có 8 lựa chọn tần số xung nhịp
Nhân tần sử dụng PLL (Phase-Locked Loop) để điều khiển cả dao động tinh thể ở tần số cao và dao động ngoài, phù hợp với dải tần xung nhịp từ 4 MHz đến 48 MHz.
Hoạt động xung nhịp kép không đồng bộ (Asynchronous dual clock operation) mô tả một thiết kế trong vi điều khiển nơi khối USB hoạt động với xung nhịp tần số cao, còn các khối khác trong vi điều khiển lại làm việc với xung nhịp tần số thấp hơn Cấu hình này cho phép xử lý dữ liệu USB nhanh chóng đồng thời duy trì hiệu suất tổng thể và tiêu thụ năng lượng ở mức tối ưu Việc tách riêng nguồn clock cho khối USB so với các thành phần khác giúp giảm độ trễ truyền dữ liệu, tăng tính ổn định của giao tiếp USB và giảm nhiễu giữa các phần mềm và phần cứng trong hệ thống.
Theo dõi an toàn xung nhịp (Fail safe clock monitor) là tùy chọn cho phép nguồn xung nhịp chính luôn được theo dõi và giám sát liên tục Khi xung nhịp chính bị mất, vi điều khiển sẽ tiếp tục hoạt động ở tần số xung nhịp thấp hơn, duy trì chức năng hệ thống và giảm thiểu gián đoạn.
Khởi động hai tốc độ (Two speed start up) là tùy chọn cho phép nguồn xung nhịp nội hoạt động trong quá trình reset khi khởi động hoặc vi điều khiển tỉnh dậy từ chế độ ngủ cho tới khi nguồn xung nhịp chính đã sẵn sàng, giúp hệ thống khởi động nhanh và ổn định từ những phút đầu.
Hình 2.3: Sơ đồ khối dao động PIC 18F4550
2.5.1/ Dao động thạch anh, cộng hưởng gốm: Ở chế độ HS, HSPLL, XT, XTPLL dao động thạch anh / 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
Sơ đồ khối PIC 18F4550
PIC 18F4550 có các khối chức năng như sau:
Hình 2.2: Sơ đồ khối PIC 18F4550
Các cổng xuất nhập của PIC 18F4550
Cổng xuất nhập (I/O Port) là giao diện thiết yếu cho vi điều khiển nhằm kết nối với các thiết bị và môi trường bên ngoài, cho phép nhận dữ liệu và phát tín hiệu điều khiển một cách linh hoạt Sự tương tác qua I/O Port rất đa dạng tùy thuộc vào mục đích sử dụng, từ đọc dữ liệu cảm biến, điều khiển thiết bị ngoại vi cho tự động hóa, tới giao tiếp với các module khác trong hệ thống nhúng và điều khiển.
Một cổng xuất nhập được cấu thành bởi nhiều chân kết nối, và số lượng chân của mỗi cổng thay đổi tùy thuộc vào vị trí và chức năng của nó để đáp ứng yêu cầu kết nối khác nhau Ngoài nhiệm vụ xuất nhập dữ liệu, các cổng còn tích hợp khả năng giao tiếp với thiết bị ngoại vi, cho phép truyền thông và điều khiển giữa cổng và các phụ kiện bên ngoài Việc hiểu rõ đặc điểm này giúp tối ưu hóa lựa chọn cổng cho các ứng dụng và thiết bị khác nhau.
Vi điều khiển 18F4550 có 5 cổng xuất nhập bao gồm port A, port B, port C, port D, port E Cấu trúc và chức năng từng cổng cụ thể như sau:
Port A có 7 chân, đều có chức năng xuất nhập dữ liệu Việc xác định hướng dữ liệu cho Port A phụ thuộc vào thanh ghi TRISA: để Port A hoạt động ở chế độ nhập, ta set các bit TRISA lên 1; để Port A hoạt động ở chế độ xuất, ta đưa các bit TRISA về 0 cho các chân tương ứng Nhờ TRISA mà có thể điều khiển việc nhập hay xuất dữ liệu trên từng chân của Port A.
Ngoài chức năng xuất, nhập dữ liệu, Port A còn tích hợp nhiều chức năng khác như ngõ vào của bộ biến đổi A/D, bộ so sánh điện áp, MSSP và ngõ vào của dao động thạch anh, mang lại khả năng xử lý tín hiệu và điều khiển hệ thống một cách hiệu quả trong các ứng dụng nhúng.
Port B có 8 chân, mỗi chân đều có chức năng xuất nhập và được điều khiển bằng thanh ghi TRISB Việc Port B ở chế độ nhập hay xuất phụ thuộc vào giá trị của TRISB: để Port B ở chế độ nhập, ta set các bit TRISB lên 1; để Port B ở chế độ xuất, ta xóa các bit TRISB về 0 Nói cách khác, để cấu hình Port B thành input ta dùng TRISB ở trạng thái 1, còn để cấu hình thành output ta đưa TRISB về 0.
Ngoài ra Port B còn tích hợp các chức năng sau: Ngõ vào bộ biến đổi A/D, ngõ vào ngắt, ngõ vào và ra của xung PWM…
Port C có 7 chân, tất cả đều có chức năng xuất nhập trừ các chân RC4 và RC5 Việc chọn chế độ ngõ nhập hay ngõ xuất cho các chân Port C phụ thuộc vào thanh ghi TRISC: để thiết lập chân ở ngõ nhập, ta set bit tương ứng của TRISC lên 1; để ở ngõ xuất, ta reset bit đó về 0.
Chân RC4 và RC5 chỉ có chức năng nhập và chức năng này không còn khi chức năng USB được sử dụng ở hai chân này
Ngoài ra còn có ngõ vào ra của xung PWM, Giao tiếp EUSART …
Port D gồm 8 chân, mỗi chân có chức năng xuất nhập Chức năng xuất nhập của Port D được điều khiển bởi thanh ghi TRISD; để Port D hoạt động ở chế độ nhập, ta đặt bit TRISD tương ứng lên 1, còn để Port D ở chế độ xuất, ta đặt bit TRISD tương ứng về 0 Mỗi bit TRISD tương ứng với một chân của Port D; khi bit bằng 1, chân ở trạng thái input, và khi bằng 0, chân ở trạng thái output.
Ngoài ra một số chân trong Port B còn là ngõ vào và ra của SSP, và là ngõ ra của xung PWM…
Port E có 4 chân đều có chức năng xuất nhập Việc xuất hay nhập phụ thuộc vào thanh ghi TRISD; nếu muốn Port E là Port nhập thì set thanh ghi này lên, còn Port xuất thì xóa thanh ghi này về 0.
Ngoài ra còn có các chức năng như: ngõ vào bộ A/D, ngõ ra của SSP…
Dao động xung nhịp
Họ vi điều khiển PIC18F2455/2550/4550 có 12 tùy chọn mạch dao động, bao gồm:
4 chế độ dao động tinh thể hoặc cộng hưởng gốm
4 chế độ xung nhịp ngoài
Một bộ dao động nội cung cung cấp xung nhịp 8 MHz, trong khi mạch dao động RC nội cung cung cấp xung nhịp 31 KHz, và hệ thống cho phép lựa chọn tần số xung nhịp từ nhiều nguồn khác nhau.
125 KHz đến 4 MHz, tất cả có 8 lựa chọn tần số xung nhịp
Nhân tần dùng PLL (Phase-Locked Loop) để đồng bộ hóa tần số và được áp dụng cho cả dao động tinh thể ở tần số cao và dao động ngoài, với dải tần xung nhịp từ 4 MHz đến 48 MHz.
Hoạt động xung nhịp kép không đồng bộ (Asynchronous dual clock operation) cho phép khối USB của vi điều khiển chạy ở tần số cao, trong khi các khối còn lại vận hành ở tần số thấp hơn Thiết kế này tối ưu hóa hiệu suất xử lý dữ liệu USB và tiết kiệm năng lượng cho hệ thống, đồng thời giảm nhiễu đồng hồ giữa các vùng xử lý khác nhau.
Theo dõi an toàn xung nhịp (Fail safe clock monitor) là một tùy chọn giúp nguồn xung nhịp chính được giám sát liên tục Khi xung nhịp chính bị mất hoặc tắt, vi điều khiển sẽ tiếp tục hoạt động ở tần số xung nhịp thấp hơn, đảm bảo hệ thống không ngừng hoạt động và giảm thiểu nguy cơ ngắt quãng Tính năng này tăng độ tin cậy cho các ứng dụng nhúng bằng cách duy trì chức năng vận hành ở mức tối thiểu cho thời gian sửa chữa hoặc xử lý sự cố.
Khởi động hai tốc độ (Two speed start up) là tùy chọn cho phép nguồn xung nhịp nội hoạt động khi reset và khi vi điều khiển thức dậy từ chế độ ngủ (Wake up from sleep mode) Nó sẽ tiếp tục hoạt động cho tới khi nguồn xung nhịp chính đã sẵn sàng.
Hình 2.3: Sơ đồ khối dao động PIC 18F4550
2.5.1/ Dao động thạch anh, cộng hưởng gốm: Ở chế độ HS, HSPLL, XT, XTPLL dao động thạch anh / 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
Nhân tần số PLL trong vi điều khiển PIC18F2455/2550/4550 tích hợp khối PLL (Phase-Lock Loop), cho phép khối USB hoạt động ở tần số cao trong khi xung nhịp của hệ thống vẫn ở mức thấp hơn PLL có thể hoạt động ở các chế độ dao động HSPLL, XTPLL, ECPLL và ECPIO Thiết kế của PLL nhằm sinh ra xung nhịp chuẩn 96 MHz từ tần số đầu vào cố định 4 MHz.
2.5.2/ Khối dao động nội (INTOSC):
Trong vi điều khiển PIC18F2455/2550/4550, khối dao động nội sinh ra hai tín hiệu xung nhịp khác nhau: lối ra trực tiếp 8 MHz và lối ra qua bộ chia (postscaler) cho xung nhịp từ 31 KHz đến 4 MHz.
Trong thiết kế mạch, nguồn dao động lấy từ dao động thạch anh hoặc từ cộng hưởng gốm được gọi là dao động ngoài Ngược lại, nguồn dao động nội có lối ra 31 kHz được cho phép trong các trường hợp nhất định Việc phân biệt giữa dao động ngoài và dao động nội giúp tối ưu độ ổn định tín hiệu và đáp ứng yêu cầu ứng dụng, đồng thời hỗ trợ lựa chọn loại nguồn phù hợp cho các thiết kế mạch điều khiển, viễn thông và các hệ thống đồng bộ.
Timer bật nguồn (Power-up timer)
Theo dõi an toàn xung nhịp
Khởi động hai tốc độ (Two-Speed Start-up)
Lối ra dao động nội được chuẩn hóa bởi nhà sản xuất nhưng vẫn cho phép người dùng tinh chỉnh để tối ưu hóa cho từng ứng dụng Việc tinh chỉnh này được thực hiện thông qua thanh ghi điều chỉnh dao động (Oscillator Control Register), cho phép điều chỉnh tần số và độ ổn định của tín hiệu một cách linh hoạt.
2.5.3/ 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ế độ 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ế độ
Bộ nhớ
Bộ nhớ Flash nâng cao (Enhanced Flash) được dùng cho bộ nhớ chương trình và bộ nhớ dữ liệu EEPROM Số lần xóa và ghi cho bộ nhớ chương trình đạt 100.000 lần, trong khi cho bộ nhớ dữ liệu EEPROM lên tới 1.000.000 lần Dữ liệu có thể được giữ lại trong bộ nhớ lên đến 40 năm mà không cần làm tươi, giúp tăng độ tin cậy và tuổi thọ cho các ứng dụng nhúng.
Có ba loại bộ nhớ trong họ PIC18:
Kiến trúc Harvard phân tách bộ nhớ chương trình và bộ nhớ dữ liệu thành hai khu vực riêng biệt, được kết nối bởi hai bus độc lập cho phép truy cập đồng thời hai vùng nhớ và tối ưu hiệu suất hệ thống nhúng EEPROM dữ liệu có thể coi như một thiết bị ngoại vi, được truy cập thông qua bộ thanh ghi điều khiển Các vi điều khiển PIC có bộ đếm chương trình 21 bit, cho phép định vị tới 2 Mbyte bộ nhớ chương trình Ví dụ, PIC18F4550 có nhiều tính năng nổi bật cho ứng dụng nhúng, bao gồm tích hợp giao tiếp USB và các cơ chế quản lý bộ nhớ hiệu quả.
Bộ nhớ chương trình lên tới 32 Kbyte có thể chứa đến 16384 lệnh từ đơn
Timer
Họ vi điều khiển PIC18 có 4 bộ timer: timer 0, timer 1, timer 2 và timer 3 Mỗi timer có tính năng riêng
Định chế độ hoạt động bằng phần mềm: timer hoặc counter, 8 bit hoặc
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
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
Khối RESET hoạt động trên cơ sở xung kích sự kiện CCP
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
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)
Khối RESET hoạt động trên cơ sở xung kích sự kiện CCP
Ngắt
PIC18F2455/2550/4455/4550 có nhiều nguồn 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 trên dòng vi xử lý này: RCON, INTCON, INTCON2, INTCON3, PIR1, PIR2, PIE1, PIE2, IPR1 và IPR2 Những thanh ghi này cho phép thiết lập, theo dõi và phân quyền ngắt theo cấp độ ưu tiên, quản lý cài đặt ngắt cho hệ thống Hiểu được mối liên hệ giữa vector ngắt và các thanh ghi điều khiển ngắt giúp tối ưu hóa phản hồi ngắt và tăng tính ổn định cho các ứng dụng dựa trên PIC18F.
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
Mức độ ưu tiên ngắt được cho phép bằng cách SET bit IPEN (RCON) Khi độ ưu tiên được cho phép, có 2 bit cho phép ngắt toàn cục SET bit GIEH NTCON) cho phép tất cả các ngắt mà SET độ ưu tiên cao SET bit GIEL (INTCON) 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.
Bộ biến đổi AD
PIC18F4550 sở hữu khối ADC 10-bit với khả năng biến đổi tín hiệu analog sang số nhanh chóng Khối ADC của vi điều khiển này có thể kết hợp với thời gian thu thập dữ liệu được lập trình, cho phép thực hiện quá trình lấy mẫu mà không cần chờ chu kỳ lấy mẫu cố định, từ đó rút ngắn thời gian biến đổi ADC và tăng hiệu suất đo lường cho các ứng dụng nhạy cảm với thời gian.
Khối biến đổi trong PIC 18F4550 có 13 lối vào, được thiết lập bởi 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.4: Khối ADC trong PIC 18F4550
PIC18F4550 tích hợp cổng USB, hỗ trợ cả tốc độ full-speed 12 Mbps và low-speed 1.5 Mbps, giúp giao tiếp nhanh giữa USB máy chủ và vi điều khiển PIC; đồng thời hỗ trợ lên tới 32 endpoints và có RAM USB 1 KB.
Hỗ trợ đủ 4 kiểu truyền:
Truyền điều khiển (Control transfer)
Hình 2.5: Khối USB trong PIC 18F4550
Module 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) là tập hợp các bit điều khiển thiết yếu cho quá trình truyền dữ liệu USB, bao gồm cho phép ngoại vi USB chính hoạt động, reset con trỏ bộ đệm, điều khiển chế độ treo và ngăn truyền gói khi cần thiết.
Thanh ghi cấu hình USB (UCFG) phải được thiết lập trước khi liên lạc qua USB; khối USB kết hợp phần cứng ngoài hoặc trong hệ thống sẽ hoạt động đúng khi cấu hình được xác lập UCFG chứa các bit điều khiển các tham số như tốc độ giao tiếp (full speed hoặc low speed), cho phép dùng điện trở kéo lên trong PIC để thu phát tín hiệu, và các thiết lập liên quan đến việc sử dụng bộ đệm trong quá trình truyền nhận dữ liệu.
Thanh ghi trạng thái truyền USB (USTAT): Báo cáo trạng thái giao tiếp trong SIE
Địa chỉ USB (UADDR) là thanh ghi chứa địa chỉ USB duy nhất mà ngoại vi sẽ giải mã khi được kích hoạt, UADDR có giá trị 0x00 sau khi USB được reset bởi vi điều khiển và địa chỉ USB này phải được vi điều khiển ghi trong pha thiết lập (setup); USB được hỗ trợ và điều khiển bởi firmware của Microchip.
Thanh ghi số frame (UFRMH:UFRML) lưu trữ số frame ở dạng 11 bit, trong đó 8 bit thấp được đặt trong UFRML và 3 bit cao được đặt trong UFRMH Cặp thanh ghi này đượ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 sử dụng làm tham chiếu thời gian cho truyền đẳng thời.
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
RAM USB là vùng nhớ cổng đôi đặc biệt dùng để truyền dữ liệu USB giữa lõi vi điều khiển và SIE (Serial Interface Engine) thông qua RAM USB Vùng RAM USB có dung lượng 1 kB và nằm ở các bank từ Bank 4 đến Bank 7 (0x400–0x7FF) Bank 4 (0x400–0x4FF) được dành riêng cho điều khiển đệm điểm cuối, trong khi Bank 5–Bank 7 (0x500–0x7FF) được dùng cho dữ liệu USB.
Hình 2.6: Vùng nhớ của USB RAM
Khối USB có thể phát sinh nhiều điều kiện ngắt với hai lớp ngắt trong khối Mức cao gồm các ngắt trạng thái USB, được bật và đánh dấu bằng 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) Mức thấp gồm các điều kiện lỗi USB, được bật và đánh dấu bằng thanh ghi cho phép ngắt lỗi USB UEIE (USB Error Interrupt Enable Register) và thanh ghi trạng thái ngắt lỗi USB UEIR (USB Error Interrupt Status Register).
Hình 2.7: Các ngắt trong USB
CỔNG USB 2.0
Giới thiệu chung
Cổng USB (Universal Serial Bus) là một chuẩn giao tiếp quan trọng được sử dụng phổ biến trên các sản phẩm và thiết bị điện tử ngày nay Nó cho phép kết nối và truyền dữ liệu giữa máy tính và nhiều thiết bị như máy in, máy ảnh, máy quét (scan) và nhiều sản phẩm khác, đồng thời cung cấp nguồn điện cho các thiết bị ngoại vi và mở rộng khả năng kết nối của hệ sinh thái công nghệ.
Cổng USB được phát triển bởi một nhóm công ty gồm Compaq, DEC, IBM, Intel, Microsoft, NEC và Nortel Ý tưởng khi thiết kế USB là tạo ra một cổng có thể kết nối dễ dàng với nhiều thiết bị mở rộng khác nhau, đồng thời hỗ trợ tính năng plug‑and‑play và cấp nguồn cho các thiết bị ngoại vi, từ đó tăng khả năng mở rộng và tương thích cho hệ thống máy tính.
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 và là phiên bản đầu tiên của chuẩn USB Phiên bản này cho phép truyền dữ liệu giữa máy tính và các thiết bị kết nối với tốc độ lên tới 12 Mbit/s, mở ra một phương thức giao tiếp USB phổ biến và đáng tin cậy cho người dùng sau này.
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
Ngoài các tính năng của USB 1.0, USB 1.1 bổ sung hai tốc độ truyền dữ liệu: 12 Mbit/s cho chế độ Full Speed và 1.5 Mbit/s cho chế độ Low Speed, phù hợp với các thiết bị có yêu cầu tốc độ khác nhau.
USB 2.0 được giới thiệu vào năm 2000, mang tính tương thích ngược với các phiên bản trước và bổ sung tốc độ cao 480 Mbit/s (High Speed) Vào tháng 12 năm 2000, công ty ECN đã công bố 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: Ký hiệu, cổng và cáp USB
3.1.2/ Ưu điểm của cổng USB:
Dễ dàng sử dụng, bạn không cần quan tâm nhiều đến cấu hình hay cài đặt chi tiết Hệ thống điều khiển luồng dữ liệu thông qua bộ đệm bằng cách quản lý các giao thức đặt sẵn bên trong, giúp tối ưu hóa hiệu suất truyền dữ liệu và đơn giản hóa quá trình triển khai.
Nhanh: 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ị
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
Được hỗ trợ bởi hệ thống, khi một thiết bị được kết nối, hệ thống tự động nhận diện và gọi cài đặt driver cho thiết bị đó Tính năng Plug and Play (hot-plug) cho phép thiết bị được nhận diện và sẵn sàng sử dụng ngay mà không cần khởi động lại hay cài đặt thủ công, một đặc tính mà các cổng trước đây như LPT hoặc RS-232 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
Số thiết bị lớn nhất
Tốc độ lớn nhất (bps)
USB Nối tiếp không đồng bộ 127 16 1.5M,12M
Nối tiếp 64 300 3.2G Video, lưu trữ
(GPIB) Song song 15 60 8M Các thiết bị khoa học
IrDA Nối tiếp không đồng bộ 2 6 16M Máy in
I2C Nối tiếp không đồng bộ 40 18 3.4M Vi điều khiển
Microwire Nối tiếp không đồng bộ 8 10 2M Vi điều khiển
MIDI Nối tiếp lặp 2 50 31.5K Âm nhạc, hiện điều khiển Parallel
Song song 2 10 - 30 8M Máy in, scan
RS-232 Nối tiếp không đồng bộ 2 50 - 100 20K Modem, chuột
RS-485 Nối tiếp không đồng bộ 32 4000 10M
Thu thập dữ liệu và kiểm soát hệ thống
SPI Nối tiếp không đồng bộ 8 10 2.1M Vi điều khiển
Bảng 3.1: So sánh giao tiếp USB với các giao tiếp khác trên máy tính
USB 2.0
Chuẩn USB 2.0 cung cấp tốc độ lên đến 480 Mbps, USB 2.0 cung cấp 3 chuẩn tốc độ như sau:
Low speed có tốc độ 1.5 Mbps
Full speed có tốc độ 12 Mbps
High speed có tốc độ 480 Mbps
Cấu trúc cơ bản của mạng USB là topology hình sao, bao gồm một hay nhiều thiết bị ngoại vi (thiết bị USB), một hay nhiều Hub và một chủ điều khiển duy nhất (Host Controller) Chủ điều khiển kết nối chặt chẽ với Root Hub để mở rộng các điểm nối, từ Root Hub sẽ kết nối tới các thiết bị hoặc tới các hub khác Hub được dùng để mở rộng các cổng kết nối trong hệ thống USB.
Hình 3.2: Mô hình kết nối Bus USB
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)
Hình 3.3: Sơ đồ kết nối 1 Bus
Máy chủ USB nhận biết một thiết bị được đấu nối vào bus bằng cách thực hiện vòng quét 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ị đá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 thiết bị nhất định, hệ điều hành gọi phần mềm điều khiển tương ứng và cho phép trao đổi dữ liệu mà không cần nạp thêm driver cho thiết bị Quy trình này cải thiện khả năng tương thích và giảm thời gian khởi động hệ thống, bởi hệ điều hành có thể nhận diện và giao tiếp với thiết bị thông qua lớp chuẩn và phần mềm điều khiển đã tích hợp sẵn Việc trao đổi dữ liệu diễn ra trực tiếp giữa thiết bị và ứng dụng mà không phụ thuộc vào driver bổ sung, giúp tối ưu hoá luồng dữ liệu và quản lý tài nguyên phần cứng Tuy nhiên, sự ổn định và an toàn phụ thuộc vào tính tương thích giữa lớp thiết bị và driver có sẵn, cũng như cơ chế cấp quyền phù hợp Bài viết này giải thích vai trò của lớp thiết bị, chức năng của phần mềm điều khiển và cách hệ điều hành thực hiện giao tiếp dữ liệu mà không cần tải driver mới.
For example, a device that declares itself as belonging to the HID (Human Interface Device) class is automatically recognized by the operating system The system then loads the appropriate device driver to control the device.
Hình 3.4: Kết nối USB theo hình sao qua Hub
Lớp thiết bị Mô tả Thiết bị
0x01 Thiết bị âm thanh Card âm thanh
0x02 Thiết bị thông tin Modem, fax
0x07 Thiết bị in Máy in
0x08 Thiết bị lưu trữ Thể nhớ, ổ đĩa flash
0x09 Thiết bị HUB Các Hub
0x0B Thiết bị đọc thẻ Đầu đọc thẻ
0x0E Thiết bị Video Wedcam, máy scan
0xE0 Thiết bị wireless Bluetooth
Bảng 3.2: Các lớp thiết bị
Bus USB có hai đầu nối phổ biến là Type A và Type B, được thiết kế để ngăn ngừa đấu nối nhầm giữa đầu cắm với thiết bị và giữa đầu cắm với hub Khác với chuẩn RS-232, hệ thống kết nối của USB không chia thành các kiểu đấu nối khác nhau như nối thẳng hay nối chéo.
Trong hệ thống USB, bus USB kết nối với các thiết bị bằng một cáp bốn sợi Trong cáp này, một cặp dây xoắn đôi được dùng để truyền dữ liệu vi sai (D+ và D-), trong khi hai dây còn lại đảm nhận cấp nguồn 5V và nối đất (GND).
Cáp USB được thiết kế để thực hiện liên kết 1:1 giữa hub và thiết bị, có nghĩa là cáp chỉ kết nối trực tiếp giữa hub và thiết bị mà không can thiệp vào thiết bị khác Kết nối qua cáp USB sử dụng 4 dây dẫn có màu sắc khác nhau quy định cho các tín hiệu trên dây, gồm nguồn cấp, đất và hai đường dữ liệu, giúp truyền tín hiệu và cung cấp điện ổn định giữa các thành phần.
Chân Tên gọi Màu dây Mô tả
Bảng 3.3: Quy định màu trong cáp USB
Ngoài các đầu cắm USB phổ biến loại A và loại B, còn có các đầu cắm Mini USB và Micro USB được thiết kế cho các thiết bị di động nhỏ như máy quay phim, máy ảnh và điện thoại di động, mang lại sự linh hoạt cho kết nối dữ liệu và sạc.
Hình 3.7: Cáp kết nối đầu loại A-B
Ngày nay, cáp USB được sản xuất và cung cấp ở dạng hoàn chỉnh bởi các nhà sản xuất, với các tham số cố định như đầu cắm, độ dài và chất lượng bọc kim chống nhiễu Những yếu tố này sau khi mua không thể thay đổi, vì vậy khi chọn cáp USB cần cân nhắc kỹ các đặc tính này để đảm bảo tương thích và hiệu suất truyền dữ liệu.
USB có các đặc tính về tốc độ truyền dữ liệu khác nhau, ví dụ Low Speed và Full Speed Đôi khi các thiết bị có tốc độ cao được kết nối với máy tính qua một cáp có tốc độ truyền thấp, khiến hiệu suất kết nối không như mong đợi Để khắc phục tình trạng này, các loại cáp USB được thiết kế để tương thích với tốc độ cao và đảm bảo truyền dữ liệu ổn định Tuy nhiên, cáp truyền ở tốc độ thấp vẫn được chỉ định dùng cho một số thiết bị cụ thể và nhà sản xuất sẽ ghi rõ khi cung cấp sản phẩm.
Ổ cắm USB có thể cấp nguồn +5V với dòng tiêu thụ khoảng 100 mA, và trong một số trường hợp có thể lên đến 500 mA Hai đường dẫn D+ và D- cho phép kết nối với các chip USB chuyên dụng hoặc với các vi điều khiển có tích hợp giao tiếp USB, giúp hệ thống giao tiếp và truyền dữ liệu một cách hiệu quả.
Trên hai đường D+ và D-, tín hiệu là vi sai với mức điện áp 0/3.3 V Nguồn nuôi USB có thể lên tới +5.25 V và khi chịu tải lớn, điện áp này có thể giảm xuống còn khoảng +4.2 V.
Máy tính nhận biết có một thiết bị Low–Speed (1.5 Mbps) hay Full Speed
Trong USB, Full Speed (12 Mbps) được nhận diện khi một chân D+ được kéo lên mức cao bằng resistor kéo về nguồn Vusb, còn Low Speed (1,5 Mbps) được nhận diện khi chân D- được kéo lên mức cao Vì vậy khi thiết kế mạch giao tiếp USB với máy tính qua cổng USB, cần nối chân D+ lên nguồn Vusb (+3.3 V) đối với thiết bị Full Speed, và nối chân D- lên nguồn Vusb (+3.3 V) đối với thiết bị Low Speed. -**Support Pollinations.AI:**🌸 **Quảng cáo** 🌸 Tăng hiệu quả thiết kế mạch USB với [Pollinations.AI](https://pollinations.ai/redirect/kofi) - hỗ trợ công cụ tối ưu hóa cho nhà sáng tạo Việt!
Ở phía USB hub, hai đường D+ và D- được kéo về đất thông qua hai điện trở Khi không có thiết bị cắm vào, hai đường này duy trì ở mức 0V Khi có một thiết bị được kết nối vào cổng, một trong hai đường D+ hoặc D- sẽ nhảy lên mức điện áp cao, nhờ đó hub nhận diện được một thiết bị mới được kết nối vào hệ thống.
Hình 3.8: Kết nối thiết bị USB Full speed
Hình 3.9: Kết nối thiết bị USB Low speed
Trong hệ thống USB, mỗi hub và mỗi cáp gây ra sự trễ tín hiệu nhưng thời gian trễ này vẫn nằm trong giới hạn tối đa được quy định Bus USB cho phép kết nối tối đa 7 hub nối tiếp nhau, do đó có thể gắn tối đa 127 thiết bị vào một bus USB Tuy nhiên con số 127 chỉ là lý thuyết; càng nhiều thiết bị được kết nối, tốc độ truyền dữ liệu sẽ giảm do băng thông của toàn bộ bus bị chia sẻ giữa các thiết bị.