Năm 1971 bộ vi xử lý đầu tiên ra đời đã mở ra một thời đại mới trong công nghệ điện tử và tin học, nó đã ảnh hưởng sâu sắc đến mọi lĩnh vực khoa học công nghệ
Trang 1LỜI CẢM ƠN
Trước tiên chúng tôi xin gửi lời cảm ơn đến các thầy, cô giáo Trường Đại HọcCông Nghệ - ĐHQGHN, bộ môn Điện Tử Viễn Thông đã nhiệt tình giảng dạy vàtruyền đạt những kiến thức, kinh nghiệm quí giá trong suốt bốn năm chúng tôi học đạihọc
Tôi xin gửi lời cảm ơn sâu sắc đến PGS.TS Ngô Diên Tập, đã tận tình hướngdẫn, cung cấp tài liệu trong suốt quá trình thực hiện đề tài này
Tôi xin gửi lời cảm ơn đến tập thể lớp K49ĐB, những người đồng hành trongkhóa học và có nhiều ý kiến đóng góp
Một lần nữa xin gửi lời cảm ơn chân thành và sâu sắc!
Hà Nội, tháng 6 năm 2008
Sinh viên thực hiện:
Nguyễn Thế Anh
Trang 2MỞ ĐẦU
Có thể nói, hiện nay vi điều khiển đã rất phổ biến ở Việt Nam, và được ứngdụng rất nhiều Những sinh viên nghành Điện, Điện Tử , Cơ Điện Tử, Tin Học, ViễnThông hâu như ai cũng biết cách để làm việc với vi điều khiển Ngày nay, nhữngtiến bộ trong công nghệ bán dẫn đã thúc đẩy sự phat triển không ngừng của nghànhcông nghiệp tự động, các quá trình điều khiển tự đông hoá và điều khiển thời gian thực
đã đặt ra yêu cầu rất lớn về việc trao đổi dữ liệu giưa các hệ thống hay giữa các bộphân trong cùng một hệ thống
Các mục tiêu đề ra trong luận văn:
Chương I: Sơ Lược Về Vi Điều Khiển
Chương II: Vi Điều Khiển Microchip PIC
Chương III: Vi Điều Khiển PIC 18F4550
Chương IV: Công Nghệ USB Qua Microchip 18F4550
Chương V: Chuyên Đổi Từ Thiết Bị Flash PIC 18F Sang PIC 18FXXJ
Chương VI: Đồng Hồ Báo Thức
Trang 3CHƯƠNG I: SƠ LƯỢC VỀ VI ĐIỀU KHIỂN 5
1.1 Sơ Lược Về Cấu Trúc Của Vi Điều Khiển 5
1.2 Một Vài Họ Vi Điều Khiển Phổ Biến: 7
1.2.1 INTEL 8051 7
1.2.3 MOTOROLA 68HCxx 7
1.2.4 MICROCHIP PIC 12Xxxx, 16Xxxx, 17Xxxx, 18Xxxx, DSPIC 8
CHƯƠNG II: VI ĐIỀU KHIỂN MICROCHIP PIC 9
2.1 Lịch Sử Phát Triển 9
2.2 Phân Loại 10
2.2.1 Họ cấp thấp (low-end) 10
2.2.2 Họ cấp chung (Mid-range) 10
2.2.3 Họ cấp cao (High-end) 17Cxxx 11
2.2.4 Họ cấp cao (High- performance) 12
2.3 Một Số Ưu Điểm Microchip PIC 12
CHƯƠNG III: VI ĐIỀU KHIỂN PIC 18F4550 14
3.1 Sơ đồ chân 16
3.2 Các Công Cụ Lập Trình 20
3.3 Đơn vị ICD-U40 23
3.4 Tiêu Thụ Năng Lượng 24
3.5 FIRMWARE 25
3.6 Các công cụ làm việc 25
3.7 Thiết bị lớp 25
3.8 Firmware HID 26
3.9 Một số đặc tính: 26
3.10 Nguyên tắc hoạt động: 26
3.11 Driver 27
3.12 Mô Tả Thực Hiện Firmware Thứ Hai 29
3.13 Kết luận 32
CHƯƠNG IV: CÔNG NGHỆ USB QUA MICROCHIP 18F4550 34
4.1 Giới thiệu 34
4.2 Vi xử lý 18f4550 34
4.3 Lắp ráp bảng phát triển 34
4.3 Truyền tải khởi động vào 18F4550 36
4.4 Phát triển ứng dụng trong MPLAB IDE 37
CHƯƠNG V: CHUYỂN ĐỔI TỪ THIẾT BỊ FLASH PIC18F SANG PIC18FXXJ 47
5.1 Chuyển đổi thiết bị 47
5.2 Giới thiệu 47
5.3 Reset Brown-out (BOR) 51
5.4 XUNG 51
5.5Tuỳ chọn dao động ký 52
5.6 Đồng hồ đo năng lượng 52
5.7 Độ trễ khởi động/reset 52
5.8 Sự khác Biệt Về Chân 53
Trang 45.9 Điện trở kéo gắn trong 54
5.10 Tỷ lệ dòng trên các chân vào/ra 54
5.11 VCAP/VDDCORE và ENVREG 55
5.12 Bộ Nhớ Chương Trình 55
5.12.1 ID thiết bị 55
5.12.2 Từ cấu hình 55
5.12.3 Các chu trình ghi 58
5.12.4 Khả năng ghi nhớ đặc tính 58
5.12.5Mô phỏng tự ghi và EEPROM 58
5.12.6 Bảo vệ mã 59
5.12.7 Vào chế độ lập trình 59
5.13 Thiết Lập Chính Xác Cho Chương Trình Thiết Bị Và Công Cụ Phần Mềm .60 5.14 KHÁC BIỆT MODULE 61
5.15 TỔNG KẾT 61
CHƯƠNG VI: ĐỒNG HỒ BÁO THỨC 62
6.1 Tóm lược 62
6.2 Chỉ thị hoạt động 62
6.2.1 Ngày tháng/thời gian hiện tại 62
6.2.2 Thời gian 12 giờ hay thời gian quân sự 63
6.2.3 Báo thức 64
6.2.4 Âm báo thức 65
6.2.5 Đồng bộ, chờ và ngừng báo thức 65
6.3 USB 67
6.4 Lập trình PIC 67
6.4.1 Đồng hồ 67
6.4.2 USB 68
6.5 Sử dụng Compact Flash 68
6.6 Chip bộ mã hoá MP3 69
6.7 Bộ chuyển đổi số - tương tự CS4334 72
6.8 Màn hình LED 72
6.9 Kết luận 73
Trang 5co khả năng mà các hệ thống điện tử thông thường không thể thực hiện được.
Các hãng chế tạo bán dẫn đã tích hợp các mạch ngoại vi và bộ vi xử lý lên mộtchíp duy nhất (on chíp) để tạo ra các bộ vi điều khiển, để nhằm hạn chế tối đa các linhkiện mắc ngoài khi xây dựng hệ thống có sử dụng vi xử lý, vi điều khiển
Những bộ vi điều khiển mới hiện nay của các hãng như: ATMEL, MOTOROLA,MICROCHIP… Bên trong đã tích hợp nhiều thiết bị ngoại vi như khối ADC, khốPWM, các loại bộ nhớ, bộ đệm, các cổng truyền thông như: 12C, UART, CAN, PSP,USB, khối điều khiển LCD, thậm chí cả các khối thu phát không dây RF Điều nàykhiến cho việc thực hiện các ưng dụng với vi điều khiển trở nên dễ dàng, giảm đượckích thước mạch điện và chi phí
Việc thiết kế và chế tạo ra các bộ xử lý (microprocessor) hiện nay phát triển theohai hớng chính Hướng thứ nhất là phát triển cac bộ xử lý mạnh tốc độ cao thực hiệnhàng tỷ lệnh mỗi giây, độ dài từ dữ liệu lớn 32 hoặc 64 bit, truy nhập không gian bộnhớ đến hàng trăm Mbyte hiện nay đã lên hàng Gbyte Các bộ xử lý này được dùngtrongcác hệ thống cần có công suất tính toán cao như ở máy tính cá nhân PC (PersonalComputer) các hệ điều khiển trong công nghiệp Hướng thứ hai đó là thiết k, chế tạocác vi điều khiển (microcontroller), đó là một vi mạch đơn bên trong gồm bộ xử lý8,12,14 hoặc 16 bit và các khối chức năng như bộ nhớ, bộ đệm, bộ biến đổi A/D, cổngnối tiếp… Các vi điều khiển điển hình là intel 8051, ATMEL, AVR, MOTOROLA68HC11, Microchip Pic…
Điều thúc đảy việc nghiên cứu chế tạo vi điều khiển đó là tính đa dụng, dễ dànglập trình và giá thành thấp Vi điều khiển tỏ ra rất hấp dẫn trong các ứng dụng điềukhiển điện tử vì có kích thước nhỏ, tuy nhỏ nhưng chức năng cũng rất đa dạng, dễdàng tích hợp vào trong hệ thống để điều khiển toàn hệ thống
Trang 6Các thành phần của vi điều khỉên là: CPU, RAM, ROM, các bộ đếm, bộ địnhthời, các cổng vào ra, giao diện truyền thông nối tiếp, các khối chuyển đổi tương tự sốA/D và ngược lại số tương tự D/A Khối xử lý trung tâm CPU thực hiện các chỉ thịđược lưu trong bộ nhơ chương trinh ROM để điều khiển tất cả các thành phần còn lại.
Bộ nhớ truy cập ngẫu nhiên RAM được dùng để lưu các thiết lập và các biến sử dụngtrong chương trình Chương trình và các số liệu cố định được lưu trong ROM Bộ nhớROM của vi điều khiển sẽ trở thành phần sụn (firmware) sau khi được nạp trình Bộnhớ ROM này có thể là loại ROM mặt nạ (masked ROM), với loại này chương trinhđược đưa vào ngay trong quá trình chế tạo vi mạch Hay có thể là loại OTP ROM chỉcho phép nạp chương trình một lần, loại EFROM co thể ghi va xoá nhiều lần bằng tiacực tim, ngoài ra còn loại bộ nhớ nữa là EEFROM là loại bộ nhớ không tự bay hơi cóthể được thay đổi dễ dàng bởi người lập trình
Vi điều khiển được sử dụng rộng rãi trong các thiết bị điện tử: chúng có trong cácthiết bị viễn thông, máy văn phòng, đồ điện tử gia dụng, đồ chơi trẻ em, thiết bị giảitrí Các thiết bị đó nói chung đều cần một cơ cấu điều khiển thông minh, có khả năngtương tác với người sử dụng
Chương trình cho vi điều khiển là một tập các lệnh đã được dịch thành mã máythường được nạp trực tiếp vào bộ nhớ ROM của vi điều khiển từ máy tinh thôngquamọt bộ nạp trình Một phía của bộ nap được nối với cổng máy tính (COM, USB,LPT) để nhận dữ liệu từ máy tính, phía kia đưa dữ liệu tới vi điều khiển thông qua cácchân nạp trình của vi điều khiển Các chân này lại là các chân vào ra thông thường saukhi vi đièu khiển đã được nạp chương trình
Các cổng vào ra số cho các dữ liệu nhị phân di chuyển voà ra qua các chân của viđiều khiển Các chân này được dùng để ghép nối vi điều khiển với các thiết bị vào ra
số hay ghép nối với các bộ vi điều khiển khác để thực hiện các chức nang nào đó.Cổng truyền thông dữ liệu nối tiếp tạo khả năng giao tiếp của hệ thống với các hệthống khác qua các chuẩn giao tiếp như: URAT, CAN, 12C, SPI…
Các bộ đếm dùng để tạo ra các nhịp thời gian chính xác hoặc để đếm xung
Khối chuyển đổi A/D cho phép vi điều khiển giao tiếp với các thiết bị điện tửtương tụ như cảm biến tương tự nhờ đó nó có thể đưa các dữ liệu tương tự vào để xử
lý và lưu trữ Khối A/D cho phép vi điều khiển điều khiển các thiết bị không tươngthích điều khiển số
Trang 71.2 Một Vài Họ Vi Điều Khiển Phổ Biến:
1.2.1 INTEL 8051
Có 40 chân, trong đó có 32 chân vào ra
128 byte RAM
Có khả năng định địa chỉ được 64Kbyte bộ nhớ ngoài
Có 2 tới 3 khối timer
Tần số xung nhịp 12-24MHz
Có khối UART
Nạp trình song song ở các phân họ có bộ nhớ chương trình
1.2.2 ATMEL AVR AT90Sxxxx
Đóng vỏ 8-20-40 chân, tương ứng là 3-15-32 chân vào ra
Chữ lượng bộ nhớ chương trình từ 512 byte đến 8 Kbyte
Có 128 byte đến 512 byte RAM
Có khối UART trong một số loại cấo cao
Có 1 đến 2 timer 8 bit một số loại có timer 16 bit
Bộ ADC 10bit với 6-8 kênh vào
Có bộ nhớ EEFROM dung lượng 64-512 byte
Có 1 byte bộ nhớ RAM bên trong
Không có hoặc tối đa 20Kbyte bộ nhớ lệnh
Có khối UARTx
Trang 8 Bộ ADC 8bit, 6-8 kênh vào
5 bộ timer 16 bit
Có bộ nhớ không tự bay hơi EEFROM 512 byte
Khả năng định địa chỉ 16 Kbyte bộ nhó ngoài
Tần số xung nhịp 8 MHz
Nạp trình song song
1.2.4 MICROCHIP PIC 12Xxxx, 16Xxxx, 17Xxxx, 18Xxxx, DSPIC
Đóng vỏDip8-18-28-40 (phổ biến), tương ứng là 5-13-22-3 chân I/O
Dung lượng bộ nhớ chương trình ROM 512 byte đến 8 Kbyte
Có từ 25 đến 400 byte RAM
Ở các loại cấp chung và cấp cao có khối UART
Có 1 đến 3 timer 8 bit, 16 bit
Bộ ADC 8bit, 10bit, 6-8 kênh vào
Có bộ nhớ EEFROM dung lượng 64-512 byte ở các họ Fxxx và DSPIC
Có khả năng định địa chỉ cho bộ nhớ ngoài ở các họ cấp cao
Tần số xung nhịp từ 4-40 MHz
Tập lệnh RISC
Đa số nạp trình theo chuẩn ICSP
Trang 9hỗ trợ các tính năng vào ra cho vi xử lý PIC không cần nhiều chức năng vì chỉ xử lýcác công việc vào ra do đó bộ mã lệnh của nó khó nhỏ gọn Những vi điều khiển PICđầu tiên có điểm yếu là chế tạo theo công nghệ n-MOS nên tiêu thụ nhiều năng lượng,
bộ nhớ chương trình là loại ROM mặt nạ chỉ nạp được một lần, do đó chương trìnhđiều khiển được nạp ngay khi chế tạo vi mạch nên chỉ thích hợp với các khách hàngđặt mua với số lượng lớn, để lắp ráp trong sản xuất những sản phẩm cụ thể
Những năm đầu thập ki 80 Genneral Instrument gặp khó khăn trong thương mại
và tổ chức lại Hãng tập trung vào chế tạo linh kiện bán dẫn công suát lớn là thế mạnhcho tới hiện nay của hãng Genneral Instrument đã chuyển nhượng Ban vi điện tử vànhà máy tại Chandle, bang Anizona cho các nhà đầu tư Họ lập ra một công ty mới, đặttên là Arizona Microchip technology hiện nay là Microchip technology Inc
Chiến lược của các nhà đầu tư là tập trung vào vi điều khiển và các bộ nhớ bándẫn Các vi mạch PIC n-MOS được cải tiến, chế tạo dựa trên nền tảng công nghệ mớiCMOS Các sản phẩm đầu tiên của Microchip được biết tới và bán ra với số lượng lớn
là các vi điều khiển PIC thuộc họ PIC16C5x Họ này có hai biến thể với bộ nhớchương trình là OTP và UV EPROM Loại OTP có thể nạp trình một lần dùng cho sảnxuất loại lớn Loại UV EPROM có thể xóa được bằng tia cực tím (tia UV) dùng khiphát triển, thử nghiệm phần mềm
Năm 1983 Microchip là hãng đầu tiên đã tích hợp được bộ nhớ chương trìnhflash EEPROM vào những vi điều khiển mới, trong đó được biết đến nhiều nhất là PIC
Trang 1016C84 và PIC16F84 Bộ nhớ chương trình flash đã loại bỏ vai trò của vi điều khiển có
bộ nhớ xoá bằng tia cực tím, có vỏ bằng gốm đắt tiền và các đèn chiếu tia cực tím
2.2 Phân Loại
Tiêu chuẩn để phân nhóm dựa trên sự khác nhau về kiến trúc bộ xử lý bên trong viđiều khiển
Số các thanh ghi có thể truy cập được
Có hay không có ngắt , số lượng ngắt
Số lượng các phần cứng có chức năng đặc biệt
Rất thích hợp trong các ứng dụng giao diện đơn giản với ngoại vi
Bộ nhớ chương trình kiểu OTP hoặc EPROM xoá được bằng tia cực tím
Tốc độ cao, thực hiện được 5 triệu chỉ thị/s với tần số xung nhịp 20MHz
Chỉ có một bộ đếm timer
Không có các ngắt cứng
Không có các lối ra tăng cường
Nạp trình song song, trừ PIC12C5xx và PIC16C505 được nạp trình nốitiếp theo giao thực ICSP
2.2.2 Họ cấp chung (Mid-range)
Bao gồm 12C6xx, 14C000, 16C55x, 16C6x, 16C62x, 16F62x, 16C67x, 16C8x,16F87x và 16C9xx
Độ dài từ lệnh 14 bit
Trang 11 Là họ vi điều khiển PIC thông dụng nhất hiện nay.
Bố chí các thanh ghi: 128 byte trên một bank, tối đa 4 bank
Là vi điều khiển vạn năng tinh năng mạnh
Có rất nhiều biến thể khắc nhau, với các kiểu đóng vỏ đa dạng: DIP, PLCC,SSOP…
Bộ nhớ chương trình flash ở hầu hết các vi mạch
Khả năng nạp trình nối tiếp ICSP
Có khả năng tự ghi vào bộ nhớ chương trình (self-programming)
Có phần cứng gỡ rối chương trình ICD ở một số loại
Kiến trúc khác so với họ PIC cấp chung, cấp thấp
Có ác lệnh tăng cường và nhiều khả năng định địa chỉ
Vi điều khiển giao tiếp bus, truy nhập cac thiết bị song song trực tiếp
Có một số lối vào/ra tăng cường
Bộ nhớ chương trình OTP
Trang 12 Nạp trình kiểu song song.
2.2.4 Họ cấp cao (High- performance)
Do đó dần dần có khả năng thay thế toàn bộ PIC cấp trung
Có các lệnh tăng cường và nhiều khả năng định địa chỉ
Có khả năng truy nhập tới 2Mbyte bộ nhớ chương trình, 4Kbyte bộ nhớ RAM
Véctơ ngắt đơn, có thể lập trình được mức độ ưu tiên các nguồn ngắt
Khả năng vào/ra tương tự họ cấp trung
Tần số hoạt động tối đa 40MHz, có bộ nhân tần số PLL
Có bộ nhớ chương trình flash
Nạp trình nối tiếp, có khả năng tự ghi vào bộ nhớ chương trình
Hiện nay mới nhất là DSPIC với nhiều tính năng vượt trội:
Kiến trúc Harvard sửa đổi, 83 lệnh đơn, với chế độ địa chỉ mềm dẻo…
2.3 Một Số Ưu Điểm Microchip PIC
Bộ nạp trình cho PIC có thể tự lắp ráp một các dễ dàng với chi phí thấp do PICchủ yếu nạp trình theo chuẩn ICSP (In-Circuit Siral Programming) là phương thức nạptrình nối tiếp: các dữ liệu được nạp vào bộ nhớ chương trình thông qua 2 chân vào/rađược gán là cổng truy nhập đến bộ nhớ chương trình trong quá trình nạp trình Do đónhờ có bộ nhớ flash và nạp trình theo chuẩn ICSP mà những người nghiên cứư và sửdụng PICđã tiết kiệm được đáng kể chi phí mua các công cụ nạp Với bộ nhớ flash thìthời gian nạp trình cũng được cải thiện đáng kể ( chỉ khoảng vài chục giây) so với UVEPROM (cỡ hơn chục phút)
Trang 13Microchip cung cấp rất đầy đủ và chi tiết các tài liệu kỹ thuật về tất cả các loại viđiều khiển PIC Ngoài ra còn cung cấp phần mềm công cụ miễn phí MPLAB-IDEđược đánh giá là tốt nhất so với các công cụ phát triển tương tự của các hãng sản xuất
vi điều khiển khác (các tài liệu công cụ này được cung cấp miễn phí trênwww.microchip.com) Ngoài ra còn có rất nhiều sách viết về PIC và các trang web nói
về vi điều khiển này Tài liệu hỗ trợ cho vi điều khiển PIC chỉ dùng sau máy tính cánhân PC và về doanh số bán ra thi trường hiện nay Microchip đã đứng đầu về doanh
số bán PIC 8 bit, vượt lên trên cả các vi điều khiển của motorola
Trang 14CHƯƠNG III
VI ĐIỀU KHIỂN PIC 18F4550
PIC18F4550 là một vi xử lý cơ bản đa chức năng và rẻ Nó là sản phẩm của họ vi
xử lý PIC thông dụng của công ty Microchip của Mỹ có trụ sở đặt tại Chandler,Arizona (Mỹ)
Hình 1: PIC18F4550
Điểm riêng biệt của vi xử lý PIC18F4550 là nó là một trong những PIC hỗ trợtoàn thể cho USB, nghĩa là có USB gắn trong có sẵn các chân đầu ra để nối trực tiếpvới máy tính mà không cần mạch kéo hay bất cứ mạch gắn ngoài nào khác
Trang 15Hình 2: Giao Tiếp USB
Hỗ trợ tinh thể và dao động ký nhiều tần số như đầu vào và bộ cân bằng nên bộ
xử lý có thể hoạt động với tần số 48 MHz của dao động ký độc lập khi kết nối Khi kếtthúc hoạt động thì chỉnh dao động ký được kết nối (thông qua các bit cấu hình) Làmviệc với tốc độ 48 MHz là điều kiện tiên quyết để chuyển sang chế độ toàn tốc nhờcổng USB Vì vậy, driver USB chuyển sang chế độ toàn tốc (1.5 Mbyte/giây) qua USB
và tương thích với chuẩn USB 2.0 Nó cũng có 35 chân vào/ra số chung (xem sơ đồchân ở phần dưới) và có sẵn vỏ bọc gồm DIP-40 nên rất thuận tiện cho nhà phát triển
và những người nghiệp dư quan tâm
Với bộ nhớ, có 32kb Flash lưu trữ chương trình, 2kb bộ nhớ SRAM bay hơi và
256 byte EEPROM (bộ nhớ không bay hơi) để lưu trữ dài hạn dữ liệu như cấu hình …Các chỉ thị dài 1 byte với một số ngoại lệ dài 2 byte (CALL, MOVFF, GOTOLSFR) Sử dụng cơ chế đường ống để thực thi mã bằng việc khiến các chỉ thị liên tiếphoạt động trong 4 xung (độ dài xung) và có 4 lần nhảy xung được thêm vào
Các đặc tính đáng chú ý khác là có đồng hồ, ngắt (đồng hồ gắn trong và gắnngoài) với hai mức ưu tiên và dùng cả hai mức như bộ so sánh tương tự kèm theo với
bộ phát điện thế chuẩn có 16 mức (hữu ích khi dùng trigger ở mức phần cứng)
Cuối cùng, CIP cũng có một bộ chuyển đổi tương tự 10 bit nhưng dao động ký
Trang 16không đủ yêu cầu về tốc độ cao cần thiết Vì vậy, máy phát dao động có tốc độ 48MHz giữa thời gian trễ do truyền tải và các ngắt khác (vòng lặp …) Không thể đạtđược tốc độ lớn hơn 200 kHz.
3.1 Sơ đồ chân
Sau đây là sơ đồ chân của PIC18F4550 trong hộp DIP-40
Đặc biệt, có thể nhận ra chân D- và D+ từ kết nối USB (chân 23 và 24)
Hình 3:Sơ đồ chân của PIC18F4550 trong hộp DIP-40
Trang 17Hình 4: TQFP
Hình 5: QFN
Trang 18Bảng 1: Bảng mô tả các chức năng từng chân của PIC18F4550
Chân Hướng Mô tả chức năng và các đặc tính
AN0-AN12
I 13 kênh Input, Analog, AN6 và AN7 còn dùng cho lập
trình dữ liệu và xung clock vào
CLKI I Lối vào của xung Clock ngoài, luôn kết hợp với chân
OSC1
CLKO O Lối ra của bộ dao động tinh thể, nối với tinh thể hoặc
bộ cộng hưởng trong chế độ dao động thạch anh.Giống như CKLO trong chế độ RC hoặc EC Luôn kếthợp với chân chức năng OSC2
Cổng giao tiếp chuyển đổi dữ liệu đồng bộ khung
Cổng giao tiếp chuyển đổi dữ liệu Clock vào ra nối tiếp.Lối vào dữ liệu nối tiếp
Lối ra dữ liệu nối tiếp
C1RX
C1TX
IO
Cổng nhận bus CAN1Cổng phát bus CAN1EMUD
Cổng vào ra dữ liệu kênh truyền thông sơ cấp của ICD.Vào ra xung nhịp kênh sơ cấp
Vào ra dữ liệu kênh thứ cấp
…
Trang 19LVDIN I Cổng vào phát hiện sụt thế.
/MCLR I Power, chân Reset, mức tích cực thấp
PGD
PGC
I/OI
Vào ra dữ liệu của ICSP
Lối vào Clock của ICSP
Trang 20SDO1
SS1
IOI
Lối vào dữ liêu của khối SPI1
Lối ra dữ liệu của SPI1
Slaver đồng bộ
SCL
SDA
I/OI/O
Vào ra Clock nối tiếp của I2C
Vào ra Data nối tiếp đồng bộ của I2C
SOSCO
SOSCI
OI
Lối ra bộ dao động tinh thể công suất thấp 32Khz
Lối vào bộ dao động 32Khz
T1CK
T2CK
II
Lối vào xung Clock ngoài của Timer1
Lối vào Vref+ (cao) thế analog chuẩn
Lối vào Vref- (thấp) thế chuẩn
3.2 Các Công Cụ Lập Trình
Khi lựa chọn kiến trúc, phải nói đến cách lập trình Với CIP thì thường dùngPICSTART Plus của Microchip Tuy nhiên, mô hình ta đã chọn là mô hình duy nhấtkhông tương thích với nhà sản xuất này Mặt khác, ta có thuận lợi nếu theo nhà pháttriển này, ta sẽ có sẵn một chiếc mà không cần phải mua Đánh giá khi hoàn thànhproject thì trong tương lai bản cập nhật sẽ được phép dùng
Trang 21CIP phát biểu dù chưa thực hiện nhưng sẽ theo kịp với nhu cầu bảo mật hay xâydựng chương trình riêng của mình.
Giải pháp ta tìm ra là chương trình và bộ debug ICD2 Giải pháp ta tìm ra làchương trình và bộ debug ICD2 Ta dễ quản lý nhóm của nhà phát triển thể hiện cácđặc tính:
Thiết bị sử dụng được chia thành như sau
Một bộ debug/chương trình thiết bị tổng hợp MPLAB ICD2 là bộ D/P thời gianthực, giá rẻ có các đặc tính sau:
Giao diện USB (Toàn tốc 2Mbit/giây) và RS-232 nối tới máy host
Debug nền thời gian thực
Giao diện người dùng đồ hoạ MPLAB IDE (có bản copy miễn phí)
Mạch giám sát đoản mạch/quá tải điện thế tích hợp
Firmware cập nhật từ máy tính
Hoàn toàn gắn kèm
Hỗ trợ điện thế thấp đến 2.0 Volt (dải từ 2.0 đến 6.0)
LED chẩn đoán (Nguồn, Bận, Lỗi)
Không gian đọc/viết và miền EEDATA của vi điều khiển chính
Các bit cấu hình chương trình
Xoá không gian bộ nhớ chương trình sau khi kiểm định
Các đồng hồ ngưng ngoại vi dừng lại tại các điểm ngưng
Biểu đồ chính của kết nối với ICD2
Hình 6: Kết Nối Với ICD2
Trang 22Với ứng dụng này sẽ sử dụng công cụ lập trình sau
CCS ICD là giải pháp loại bỏ lỗi và lập trình cho microchip PIC16Fxx vàPIC18Fxx MCU hoàn chỉnh in-circuit ICD có thể loại bỏ lỗi qua PIC16 và hỗ trợPIC18 trống loại bỏ lỗi theo cách loại trừ sai phạm Nó cũng cung cấp lập trình nối tiếpin-circuit (ICSP) cho tất cả các chip Flash Một danh sách các phần được DCI hỗ trợđược ghi chi tiết ở đây
Các đơn vị CCS ICD làm việc tốt với phần mềm điều khiển PCW hay CCS độclập với ICD CCS Debug PCW là quan trọng và tích hợp với bộ biên dịch và PCWPCWH và cung cấp thông tin phát sinh lỗi được viết chi tiết bằng C Phần mềm chophép các chương trình điều khiển độc lập nhanh chóng tác động vào ICSP chính nhờICD Phần mềm điều khiển cũng cho phép bạn cập nhật các hỗ trợ mà không thay đổi
về mặt logic đối tượng ICD, không phải bỏ đi chip của đơn vị ICD (Dùng các công cụphần mềm này đòi hỏi phải nạp cho đơn vị CCS ICD không thay đổi logic phương tiệntrên ICD, được tải theo mặc định) Phần mềm điều khiển từ đơn vị ICD và cho phépthiết lập các phần Flash được hỗ trợ Để giúp loại bỏ lỗi, chức năng của PCW hayPCWH là debug và tích hợp IDE với IDE
Trang 23ICD-S40 đã thay thế ICD-S20 và DCI 4 MHz Hãy chú ý, ICD-S40 và ICD-U40chỉ làm việc với phần mềm và không dùng MPLAB IDE CCS ICD nguyên bản CCS 4MHz làm việc với MPLAB IDE 5.xx.
Cần phải cấp nguồn 3V cho ICD-U40 ICD-S40 không hỗ trợ 3V CCS cungcấp hai giải pháp cho ICD:
3.3 Đơn vị ICD-U40
Đơn vị ICD nối với máy tính và phần mềm Debug trên USB Nó hoạt động vớitần số xung 40 MHz nên thời gian debug nhanh hơn (có cả cáp USB) Đơn vị được cấpnguồn ICD-U40 USB Bộ nguồn cũng cấp nguồn 5V để nối “cầu” gần ICD trong đơn
vị (đơn vị phải được bật)
Hình 8: Đơn Vị ICD-U40
Sơ đồ hai ứng dụng được trình bày dưới đây:
Thông tin relay:
Hình 9 : Thông Tin relay
Trang 24Phần này dùng để kết nối với ICD của MPLAB để connector J2 có thể lập trìnhlại cũng như chiếu sáng và gỡ bỏ thiết bị, với loại kết nối này thì không cần card CIPDEMO USB FS của Microchip và có giá thành cao.
Đây là cách sử dụng ứng dụng thứ hai
Hinh 10: Thông Tin relay
Cần phải nói rằng connector DCI đã thay đổi, không còn là cáp 5 connector nữa
mà đã chuyển thành cáp 6 connector, đó là do việc phát triển project gặp khó khăn khidùng ICD, nó hầu như không thể bị ảnh hưởng hay debug nhiều lần, đây là lý do chính
mà thay đổi là ICD có cấu hình như trên, tuỳ chọn thay đổi đầu vào tương tự và máychỉ thị thể hiện có truyền thông giữa thiết bị và host
3.4 Tiêu Thụ Năng Lượng
Để quyết định xem có cần cấp nguồn ngoài (hay đơn giản là cấp nguồn qua cổngUSB), xem danh sách sau các thành phần và tiêu thụ năng lượng của chúng
Do cổng USB có thể cấp dòng 500 mA nên phải dùng nguồn từ ngoài để cấpnguồn Ta dùng bộ điều chỉnh 7805 và chọn nguồn 9VDC vì đó là điện thế tối thiểucần để 7805 hoạt động được (và để tản nhiệt) và có thể thay bằng pin 9V nếu cần
Trang 253.5 FIRMWARE
Thực hiện truyền thông USB
2 ví dụ được phát triển để thực hiện truyền thông qua USB:
• Cung cấp host thông tin (máy tính) cho thiết bị (vi điều khiển) và thông tin relay từthiết bị (vi điều khiển) cho host (máy tính)
• Quản lý các đầu vào và đầu ra số cũng như các đầu vào tương tự (bộ chuyển đổitương tự - số)
Thông tin truyền thông và quảng bá Web:
3.6 Các công cụ làm việc
Firmware là chương trình chạy trong CIP và điều khiển truyền thông Nó đượcviết hoàn toàn bằng C dùng MPLAB C18 của Microchip, một bộ biên dịch C của cùngnhà sản xuất hỗ trợ chuẩn PKI ANSI C’89 và được thiết kế cùng MPLAB IDE (làcông cụ để lập trình và debug CIP) Một đặc tính khác của MPLAB C18 là khả năngsinh ra giá trị nhị phân do vi điều khiển quản lý
Họ PIC18F (ví dụ, PIC18F4550) dùng chỉ thị mở rộng như một kiến trúc
Chú ý MPLAB C18 có thể download miễn phí trên trang của Microchip (xemliên kết tham khảo) Tuy nhiên, phiên bản miễn phí (gọi là phiên bản dùng cho sinhviên) có thời hạn sử dụng là 60 ngày Trong 60 ngày đó, chương trình sẽ tiếp tục hoạtđộng nhưng không quản lý, vì vậy bộ biên dịch sẽ sinh ra các giá trị nhị phân để tiếptục hoạt động nhưng sẽ tốn không gian hơn (do không được quản lý) và không dùngcác chỉ thị của PIC18F4550 phổ dụng nên cần nhiều tính năng phần mềm hơn và vìvậy kém hiệu quả
3.7 Thiết bị lớp
Theo chuẩn thì có nhiều loại thiết bị USB với các đặc tính khác nhau thường thấytrong thiết bị Ví dụ, có lớp cho camera số, một lớp cho máy scan, một cho máy in …Các lớp thiết bị được xây dựng để nâng cao tính tương thích của các thiết bị Vì vậy,bất cứ hệ điều hành nào có driver làm việc với camera số đều có thể đọc được ảnh từcamera số được thiết kế phù hợp với các thông số kỹ thuật của loại thiết bị đó
Đặc biệt với ứng dụng của chúng ta, ta chọn sử dụng loại thiết bị HID (Thiết bịgiao diện người dùng), về cơ bản là một kết nối tương tự với chuột hay bàn phím Lý
Trang 26do ta chọn lớp này là do lượng lớn thông tin tại Microchip và kinh nghiệm có được từcác đối tượng khác sử dụng loại driver này, ngoài ra nếu ta cần tạo một driver thì ta sẽdẫn đến trang này từ Microchip.
3.8 Firmware HID
Truyền thông được thực hiện qua sự hỗ trợ của firware USB HID, một nền cungcấp yêu cầu của Microchip để thiết lập truyển thông (qua cổng USB) một cách đơngiản
3.9 Một số đặc tính:
Chuyên nghiệp: miễn phí, dễ sử dụng
Nhược điểm: tốc độ truyền dữ liệu nhỏ (giới hạn tới 64 kbyte/giây)
Một bộ đệm đơn giữ các bản báo cáo được lưu trữ và báo cáo nhận được đã gửi.Việc thực hiện là sử dụng chuột thử nghiệm từ Microchip
Project được kiểm tra trong bảng thể hiện PICDEM FS USB
Trang 273.11 Driver
Chuẩn yêu cầu tất cả các thiết bị USB trong giai đoạn thương lượng phải đượcxác định với ID nhà sản xuất và ID sản phẩm (sau đây gọi là VID và PID) Cặp giá trịnày giúp nhận biết nhà sản xuất thiết bị (PRI) và mẫu riêng của một sản phẩm được kếtnối Vì vậy, các mẫu khác của cùng sản phẩm nói chung khác PID
Mục đích chính của các giá trị này không chỉ là xác định thiết bị mà còn là tìm vàtải đúng driver cho nó Vì vậy, tất cả các driver của Windows (hay các sản phẩm tươngtự) được sắp xếp như thiết bị với một hay nhiều PID và PRI sử dụng cho driver đã nói.Đây là cách sử dụng Windows (hay hệ điều hành khác đang đề cập) dù driver đượcchọn có đúng hay không
Trong trường hợp driver dùng cho hệ điều hành khác, cặp VID/PID đủ để xácđịnh driver nếu cần tải và vì vậy khi một thiết bị gắn với VID/PID thì nhận biết được
hệ thống tự động tìm ra và cho phép sử dụng ngay Tuy nhiên, nếu không nhận raVID/PID thì hệ điều hành sẽ hỏi người dùng cấp driver Một ví dụ là màn hình
Cửa sổ phát hiện phần cứng mới
Đây là phần giải thích PRI và bộ điều khiển PID về ứng dụng của chúng ta vớiloại HID không cần cài đặt bất cứ driver nào (Windows tự động cập nhật)
Các công cụ dùng trong ứng dụng này được thể hiện như sau:
Trang 28Các bit cấu hình được dùng để thiết lập chế độ hoạt động của CIP (ví dụ, tần sốcủa bộ tạo dao động) và được thiết kế để lập trình Các bit cấu hình do MPLAB quản
lý khi lập trình và có thể cấp cho 2 dạng:
1 Qua danh sách các bit cấu hình của MPLAB (Đặt bit cấu hình)
2 Qua các macro cùng mã dùng khai báo cấu hình thực #
Dưới đây là hình ảnh lựa chọn các bit cấu hình của MPLAB (tuỳ chọn 1)
1 tham chiếu đến project dùng một “bộ tải khởi động”
• Khi bạn mở ứng dụng thì luôn mở file “workspace” (*.mcw)
• Tất cả các ví dụ trong thư mục được tải qua bộ tải khởi động
Trang 29Nếu bạn đang dùng ICD2 và không phù hợp với bộ tải khởi động thì bạn phảiđiều chỉnh lại như sau:
• MPLAB đồ hoạ thay đổi liên kết rm18f4550.lkr bằng một linker chuẩn18f4550.lkr, điều này có thể thấy được theo mặc định trong thư viện C18
• Thay đổi đường dẫn của liên kết đến đúng vị trí để không phát sinh lỗi
• Bạn phải xoá đi các mã theo sau:
Extern void _startup (void); / / xem c018i.c trong thư mục biên dịch C18
# Pragma _RESET_INTERRUPT_VECTOR code = 0x000800
Void _reset (void)
(
_asm Goto _startup _endasm
)
# Pragma Code
Đây là mã trong file main.c
• Cuối cùng (tuỳ chọn) khi định hướng bit, đặt 0x30000B tắt phần ngăn viếtBOOT
3.12 Mô Tả Thực Hiện Firmware Thứ Hai
Ứng dụng thứ hai là sự trợ giúp lớn và kinh nghiệm lớn để hiểu USB, theo sựphát triển của ứng dụng trước đây áp dụng vào các điểm khác để phát triển và thựchiện cho thực thi này và firmware được dùng cho các công cụ làm việc khác này, được
mô tả ở chương trước, tiếp cận đang sử dụng là mã hoạt động:
# Include <18F4455.h>
# Fuses HSPLL, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL5,CPUDIV1, VREGEN
# Use delay (clock = 48000000)
# Define USB_EP1_TX_ENABLE USB_ENABLE_INTERRUPT
# Define USB_EP1_TX_SIZE 8
# Define USB_EP1_RX_ENABLE USB_ENABLE_INTERRUPT
Trang 30Đặc tính khác được thể hiện trong mã thông báo.
Trang 31Đây là danh sách tất cả các tài nguyên của Microsoft Windows mà chương trình
sử dụng gồm có các icon, điểm ảnh, con trỏ được lưu trong thư mục con của RES Filenày có thể viết trực tiếp vào Microsoft Visual C++
Usb_Ej_1.clw
File này chứa thông tin để ClassWizard sử dụng khi phác thảo các lớp hay thêmlớp mới ClassWizard cũng dùng file này để chứa thông tin cần thiết để tạo, soạn danhsách các thông điệp, trình bày dữ liệu cho hội thoại và tạo tác vụ như thành phầnnguyên bản
Trang 32Hình 11: Giao diện được phát triển hỗ trợ truyền thông USB
Có thể có vô hạn driver này do có thể tạo ra các driver riêng giống nhau, vấn đề
là độ phức tạp của thuật toán được phát triên Trong trường hợp project của ta, ta chọn
sử dụng DLL “UsbHidApi” là phần mềm thương mại, file này khiến mạch máy tínhphát hiện ra dạng của HID (Thiết bị giao diện người dùng), tương tự với chuột,joystick, bàn phím …
Trang 33Những phát triển của project này đã mở ra cánh cửa để sử dụng tốt loại bus này,được coi là bảng bus Dựa trên ứng dụng này qua PIC, có thể thực hiện được rất nhiềuứng dụng hay trong công việc khi bất cứ thiết bị được phát triển nào có thể được giámsát và điều khiển qua bus này
Chú trọng đến vi điều khiển PIC là vi điều khiển phổ biến nhất hiện nay cho cácứng dụng đó, các chức năng luồng cần cho truyền thông với bus USB và chuyển đổinội dung tương tự - số cho thiết bị
Nguồn thông tin
Internet
Diễn đàn thảo luận
Hướng dẫn lập trình ngôn ngữ Visual C++
Trang web (www.microchip.com)
Trang 34Sơ đồ thực hiện dùng ở đây sử dụng việc kết hợp cách tiếp cận dùng trong giaodiện CREATE USB (CUI, phụ lục 3) và pic18fusb.online.fr Wiki (Phụ lục 1) Cả haiđều sử dụng kỹ thuật tải khởi động và phần mềm liên kết với bảng thể hiện USB toàntốc Microchip PICDEM.
Tất cả các phần mềm dùng trong bảng phát triển có thể download miễn phí gồm
có bộ biên dịch MPLAB C18 C phiên bản dùng cho sinh viên
Trang 35Hình 12 : Quá Trình Phát Triển
Trước khi lập trình lần đầu cho bảng phát triển, bạn phải download mã tải khởiđộng vào 18f4550 Đọc phần có tiêu đề “Truyền tải khởi động vào 18F4550” để xemchi tiết về quá trình này
Các chương trình được viết và phát triển trong Microchip MPLAB Các chươngtrình có thể phát triển bằng ngôn ngữ hợp ngữ hay C
Sử dụng môi trường MPLAB để gọi bộ biên dịch C18 C hay bộ hợp ngữ C18hay bộ hợp ngữ sẽ biên dịch file asm của bạn hay mã C thành file hex
Lập trình cho PIC 18F4550 bằng cách download file hex qua tải khởi động dùngchương trình PDFSUSB.EXE (lưu trú tại C:\MCHPFSUSB\Pc\Pdfsusb\PDFSUSB.exetrong MCHPFSUSB USB Framework)
Để bảng phát triển hiện ra thực đơn PDFSUSB.EXE, phải reset bảng và giữ phím
“button”
Trong môi trường PDFSUSB.EXE:
Tải file Hex
Lập trình thiết bị
Thực hiện
Nó sẽ tải file hex vào 18F4550 và khởi tạo thực hiện trong thiết bị
Phần mềm cần thiết
Phần mềm sau có thể download từ Microchip:
MPLAB IDE – môi trường phát triển để xây dựng ứng dụng
Bộ biên dịch MPLAB C18 C Phiên bản cho sinh viên – có thể sử dụng vớiMPLAB IDE để phát triển ứng dụng bằng C
MCHPFSUSB USB Framework - gồm tải khởi động và các ví dụ để sử dụng vớibảng phát triển
Trang 36Release Notes for MPLAB C18 C Compiler, Student Edition
MPLAB C18 COMPILER USER’S GUIDE – Microchip document DS51288JMPLAB C18 C Compiler Getting Started – Microchip document DS51295FMPLAB C18 Libaries Documentation – Microchip document DS51297F
Release Notes for MCHPFSUSB – Microchip Full-Speed USB Solutions
PICDEM FS USB Demonstration Board User’s Guide – DS51526A
4.3 Truyền tải khởi động vào 18F4550
Xem Phụ lục B – “Phần cứng để tải mã vào 18f4550” nói về các thiết bị đểtruyền tải khởi động vào chip 18f4550
Lần đầu tiên lập trình cho bảng phát triển, phải dùng chương trình ICD2 thay choPDFSUSB.EXE Nguyên nhân là do PIC hoàn toàn trống khi đem từ nhà máy về vàbạn phải tải file hex cho tải khởi động vào PIC để kích hoạt các phiên lập trình trongtương lai qua PDFSUSB.EXE
File hex tải khởi động được lưu trong mã MCHPFSUSB USB Framework TrongMPLAB, mở file hex “C:\MCHPFSUSB\fw\Boot\_output\MCHPUSB.hex”, chọnchương trình ICD2 và click vào thiết bị lập trình Nó sẽ truyền mã tải khởi động vào18f4550
Vào chế độ tải khởi động
Mã biên dịch dạng file hex có thể download bằng chương trình PDFSUSB.EXE
Để download mã vào 18f4550 qua PDFSUSB.EXE, làm như sau:
Mở ứng dụng PDFSUSB.EXE
Kiểm tra cửa sổ thả “Select PICDEM FS USB Board” để xem bảng điều khiển cóhiện ra không Nếu có thì bạn sẽ thấy phần “PICDEM FS USB (0) Boot” Chọn phầnnày Đến bước 4
Nếu “PICDEM FS USB (0) Boot” không hiện ra, làm như sau để vào chế độ tảikhởi động 18f4550:
Nhấn và giữ khoá S2
Trong khi giữ S2, nhấn và thả S1
Trang 37PC sẽ kêu “beep” chỉ thị rằng 18f4550 bây giờ đã có trong ứng dụngPDFSUSB.EXE Trong Device Manager, thiết bị sẽ xuất hiện dưới Other Devices –PIC 18F4550 Family Device.
Nếu đây là lần đầu tiên bạn sử dụng tải khởi động thì máy tính sẽ không nhậnfirmware tải khởi động, vì vậy bạn phải cài driver (chỉ cần một lần) Khi Windowsthông báo “Found New Hardware”, click “No, not this time” rồi chọn “Install fromlist” Rồi click vào “Browse …” và chọn thư mục “C:\MCHPFSUSB\Pc\MCHPUSBDriver\Release” rồi “Next”, “Continue Anyway” và “Finish”
4.4 Phát triển ứng dụng trong MPLAB IDE
Các bước sau để tạo ra một ứng dụng mới cho 18f4550 dùng chế độ tải khởiđộng để download cho thiết bị
Mở MPLAB IDE
Từ thực đơn MPLAB Project, chọn Project Wizard
Click “Next”
Chọn thiết bị (PIC18F4550)
Chỉnh lại Active Toolsuite là “Microchip C18 Toolsuite”
Tạo một file project mới Tạo một thư mục mới cho project (C:\MCHPFSUSB\fw\MyPro1) Đặt tên cho project (ví dụ MyPro1)
Trang 38Thêm file vào project này Thêm file “C:\MCHPFSUSB\fw\Demo02\rm18f4550”.Tạo một file để lưu chương trình C File|New Thêm mã, Save As (ví dụ Mypro1.c).Thêm Mypro1.c vào project File|Add new file to project.
Biên dịch Project|Build All
Sau khi biên dịch thành công, vào chế độ tải khởi động với 18f4550
Sử dụng ứng dụng PDFSUSB.EXE để tải chương trình vào 18f4550
Chú ý rằng script linker đặc biệt (rm18f4550.lkr) được dùng cho ứng dụng tảikhởi động Trong rm18f4550.lkr, reset, vector ngắt có ưu tiên cao và thấp được xếpngoài khối khởi động để ngăn ghi đè lên nó
Ví dụ - Tải file Hex Demo02 vào 18f4550
Khi bạn đã truyền được tải khởi động vào 18f4550, bạn có thể dùng chương trìnhPDFSUSB.EXE để tải file chương trình vào thiết bị
Để vào chế độ tải khởi động, nhấn phím chương trình trên bảng phát triển trongkhi vẫn cắm cáp USB hay reset lại bảng Nếu đây là lần đầu tiên bạn dùng tải khởiđộng thì máy tính của bạn sẽ không nhận firmware tải khởi động, vì vậy bạn phải càidriver (chỉ cần một lần) Khi Windows thông báo “Found New Hardware”, click “No,not this time” rồi chọn “Install from list” Rồi click vào “Browse …” và chọn thư mục
“C:\MCHPFSUSB\Pc\MCHPUSB Driver\Release” rồi “Next”, “Continue Anyway”
PDFSUSB: Mở công cụ Microchip:
“C:\MCHPFSUSB\Pc|Pdfsusb\PDFSUSB.exe” (“tiện ích Microchip USB – BootLoader”)