1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế hệ thống băng chuyền phân loại sản phẩm theo chiều cao sử dụng vi điều khiển PIC18F2550

98 421 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 98
Dung lượng 3,49 MB

Nội dung

Từ những thiết bị điện tử đầu tiên to lớn cồng kềnh hiệu suất thấp rồi đến những chiếc máy tính bỏ túi đầu tiên trợ giúp con người với khả năng tính toán lên đến hàng trăm ngàn phép tính

Trang 1

LỜI MỞ ĐẦU

Trong cuộc sống hiện đại ngày nay, công nghệ kỹ thuật điện tử đã hiện diện trong hầu hết các thiết bị con người sử dụng từ lĩnh vực dân dụng đến công nghiệp, quân sự Hơn 60 năm từ khi thiết bị bán dẫn đầu tiên ra đời cho đến nay đã có những bước phát triển nhanh chóng đến kinh ngạc, đem tới sự tiện nghi đáp ứng cho cuộc sống của con người Từ những thiết bị điện tử đầu tiên to lớn cồng kềnh hiệu suất thấp rồi đến những chiếc máy tính bỏ túi đầu tiên trợ giúp con người với khả năng tính toán lên đến hàng trăm ngàn phép tính trên giây cho tới hiện nay với sự ra đời của công nghệ nano đã biến những thứ không thể thành có thể, mọi thứ như máy tính bỏ túi, đồng hồ, máy ảnh số, chiếc điện thoại bàn… đều được tích hợp trong một chiếc điện thoại nhỏ gọn mà người dùng có thể đem đi bất cứ nơi đâu một cách dễ dàng

Sự phát triển vượt bậc của công nghệ điện tử dẫn đến sự ra đời của các chip vi xử lý thông minh với mức độ tích hợp cao ứng dụng vào các dây chuyền sản xuất hiện đại Nhiệm vụ của con người trong các khâu sản xuất dần được giảm nhẹ bởi các hệ thống điều khiển thông minh

có khả năng tự động hóa các công đoạn cao giúp giảm giá thành nhân công, an toàn hơn trong vận hành, điều khiển và đem lại hiệu suất làm việc cao hơn Trong bối cảnh hiện nay, nền công nghiệp nước ta vẫn còn khá mới mẽ trong lĩnh vực tự động hóa, hầu hết các máy móc và công nghệ sản xuất đều phải nhập từ các quốc gia khác có nền công nghệ cao hơn, do đó chi phí để đầu tư các hệ thống máy móc này khá đắt tiền mà nhiều doanh nghiệp vừa và nhỏ không có đủ chi phí mua các máy móc đó Từ thực tế trên nên tôi quyết định thực hiện đồ án “ Thiết kế hệ thống băng chuyền phân loại sản phẩm ứng dụng vi điều khiển PIC18F2550” để tìm hiểu cơ sở lý thuyết tới hệ thống thực tiễn về một dây chuyền sản xuất cơ bản nhất làm cơ

sở để phát triển những hệ thống phức tạp và đáp ứng nhu cầu thực tế hơn sau này

Trang 2

LỜI CẢM ƠN

Trong suốt chặng đường học vấn của mình từ cấp tiểu học, trung học, phổ thông đến bây giờ

là đại học là một chặng đường dài Qua mỗi chặng đường là một lần em lớn lên hơn và trưởng thành hơn trong cả kiến thức lẫn suy nghĩ của mình, trong đó chặng đường đại học là chặng đường cuối cùng với những kiến thức quan trọng nhất và cần thiết nhất trong quãng đời học sinh với những năm tháng học tập tiếp xúc với những cái mới và nghiên cứu về các lĩnh vực chuyên môn, thúc đẩy tinh thần đam mê khoa học Tất cả những thứ đó là hành trang quan trọng trong con đường sự nghiệp của chúng em sau này

Đây là đồ án cuối cùng trong chặng đường gần 5 năm học tập tại trường, nó cũng là dịp để em

ôn tập và cũng cố lại tất cả những kiến thức mà các thầy cô đã dạy trong những năm qua Qua

đây em cũng gởi lời cảm ơn tới Ban giám hiệu trường Đại Học Mở Thành Phố Hồ Chí

Minh và tập thể các thầy, cô giáo tại Khoa Xây dựng và Điện trong những năm qua đã dạy

dỗ chúng em để được như hôm nay Đặc biệt gởi lời cảm ơn tới thầy Phan Văn Hiệp đã tận

tâm hướng dẫn em hoàn thành tốt đồ án này

Cuối cùng, xin gởi lời cảm ơn tới các bạn học đã đồng hành và giúp đỡ, góp ý cho mình trong suốt quá trình học tập tại trường

Tp.Hồ Chí Minh … tháng… năm 2012

Sinh viên thực hiện

Hồ Quốc Lợi

Trang 3

MỤC LỤC LỜI MỞ ĐẦU

LỜI CẢM ƠN

MỤC LỤC

Chương 1: GIỚI THIỆU TỔNG QUAN ĐỀ TÀI 1

1.1 Mục đích chọn đề tài 1

1.2 Ý nghĩa thực tế 1

1.3 Giới hạn nghiên cứu 1

1.4 Yêu cầu đặt ra 2

1.5 Phương pháp nghiên cứu 2

Chương 2: GIỚI THIỆU VỀ VI ĐIỀU KHIỂN PIC18F2550 3

2.1 Vi điều khiển PIC18F2550 3

2.1.1 Giới thiệu chung 3

2.1.2 Phân loại PIC theo ký tự 3

2.1.3 Phân loại PIC theo dòng 3

2.2 Các chức năng tổng quát của PIC18F2550 4

2.2.1 Mô tả chung 4

2.2.2 Các chức năng tích hợp trong PIC18F2550 4

2.2.3 Cấu trúc phần cứng của PIC18F2550 5

2.2.4 Tổ chức bộ nhớ chương trình 6

2.2.5 Tổ chức bộ nhớ dữ liệu 7

2.3 Các PORT và thanh ghi của PIC18F2550 8

2.3.1 Port A và các thanh ghi liên quan 9

2.3.2 Port B và các thanh ghi liên quan 11

2.3.3 Port C và các thanh ghi liên quan 12

2.3.4 Port E và các thanh ghi liên quan 14

2.4 Chức năng ngắt ngoài trong PIC18F2550 15

2.4.1 Giới thiệu các nguồn ngắt trong PIC18F2550 15

2.4.2 Ngắt ngoài INT0 , INT1 , INT2 16

2.4.2.1 Ngắt ngoài INT0 16

2.4.2.2 Ngắt ngoài INT1 16

2.4.2.3 Ngắt ngoài INT2 16

2.5 Tìm hiểu về chuẩn giao tiếp USB 17

2.5.1 Mô hình giao tiếp USB 18

2.5.2 Các kiểu truyền trong USB 20

2.5.3 Giao diện vật lý USB 20

2.5.4 Giao thức truyền 22

2.5.4.1 Các trường truyền thông USB 22

2.5.4.2 Các gói truyền thông USB 23

2.5.4.3 Quá trình truyền của các kiểu truyền thông USB 24

2.5.4.3.1 Truyền điều khiển 24

2.5.4.3.2 Truyền ngắt 25

2.5.4.4 Quá trình điểm danh các thiết bị 26

2.5.5 Module USB của PIC18F2550 29

Chương 3: LED 7 ĐOẠN VÀ CÁC VẤN ĐỀ LIÊN QUAN 32

3.1 Giới thiệu LED 7 đoạn 32

3.2 Cấu tạo LED 7 đoạn 32

3.3 Giao tiếp với LED 7 đoạn 33

Trang 4

3.3.1 Giải mã theo phương pháp dùng IC giải mã 74LS247 33

3.3.1.1 Giới thiệu IC giãi mã 74LS247 33

3.3.1.2 Sơ đồ kết nốI 35

3.3.2 Giãi mã LED 7 đoạn dùng vi điều khiển 35

3.3.3 Giãi mã LED 7 đoạn dùng IC 74LS247 và vi điều khiển 36

Chương 4: ĐỘNG CƠ MỘT CHIỀU VÀ ĐỘNG CƠ BƯỚC 38

4.1 Động cơ một chiều 38

4.1.1 Cấu tạo động cơ một chiều 39

4.1.2 Nguyên lý hoạt động 39

4.1.3 Điều khiển tốc độ và chiều động cơ một chiều 39

4.1.3.1 Điều khiển tốc độ động cơ một chiều 40

4.1.3.2 Điều khiển chiều động cơ một chiều 41

4.2 Động cơ bước 42

4.2.1 Cấu tạo động cơ bước 42

4.2.2 Nguyên lý hoạt động 42

4.2.3 Các phương pháp điều khiển động cơ bước 44

4.2.4 Giao tiếp công suất với động cơ bước 46

Chương 5: TRÌNH BIÊN DỊCH PCWH NGÔN NGỮ C CHO PIC 47

5.1 Giới thiệu chung 47

5.2 Cách viết một chương trình trong CCS 48

5.3 Nạp chương trình cho PIC 54

Chương 6: TÌM HIỂU SƠ LƯỢC VỀ NGÔN NGỮ LẬP TRÌNH VB.NET 57

6.1 Giới thiệu chung 57

6.2 Thư viện giao tiếp USB trong VB.NET 59

Chương 7: XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN 60

7.1 Phần mềm giao tiếp trên máy tính 60

7.1.1 Giải thích hoạt động 62

7.2 Chương trình điều khiển PIC18F2550 62

7.2.1 Hoạt động 64

Chương 8: THIẾT KẾ MÔ HÌNH VÀ BOARD ĐIỀU KHIỂN 67

8.1 Thiết kế mô hình 67

8.2 Sơ đồ nguyên lý 69

8.2.1 Sơ đồ khối cảm biến và vi điều khiển PIC18F2550 69

8.2.2 Sơ đồ khối hiển thị LED 7 đoạn 71

8.2.3 Sơ đồ khối điều khiển động cơ 72

8.2.4 Sơ đồ khối nguồn 73

8.3 Mạch in 74

Chương 9: MÔ PHỎNG HỆ THỐNG TRÊN PROTEUS 7.7 75

Chương 10: KẾT QUẢ THỰC HIỆN VÀ HƯỚNG PHÁT TRIỂN 77

10.1 Tóm tắt đề tài 77

10.2 Kết quả thực hiện 77

10.3 Hướng phát triển 77

Trang 5

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI

1.1 Mục đích chọn đề tài

Ngày nay, với sự phát triển mạnh mẽ của các ngành khoa học kỹ thuật, công nhệ kỹ thuật điện

tử mà trong đó kỹ thuật điều khiển tự động đóng một vai trò vô cùng quan trọng và góp mặt trong mọi lĩnh vực từ dân dụng cho tới công nghiệp… Do vậy là một sinh viên chuyên ngành điên tử chúng ta phải biết nắm bắt và vận dụng một cách hiệu quả những kiến thức học được

để đáp ứng được nhu cầu của xã hội, nâng cao trình độ của bản thân và góp phần thúc đẩy sự phát triển của nước nhà

Trong quá trình đi tham quan thực tế và thực tập tốt nghiệp tôi thấy được các hệ thống máy móc thực tế trong các xưởng sản xuất, cách thức vận hành cũng như các khâu điều khiển tự động hóa và bên cạnh đó cũng có không ít các hệ thống điều khiển theo kiểu thủ công, nghĩa

là mỗi khâu trong đó điều phải có một hoặc nhiều công nhân đứng vận hành trực tiếp Điều này thứ nhất làm cho hiệu suất sản xuất không cao, quá trình sản xuất không đảm bảo tính liên tục và tính chính xác của hệ thống mà phần nhiều do lỗi của người công nhân vận hành Thứ hai không đảm bảo an toàn lao động cho các công nhân vận hành do tiếp xúc trực tiếp với bảng điều khiển mà nó có thể phát sinh các sự cố như chập điện do các nguyên nhân nào đó không biết trước được Thứ ba là do mỗi khâu sản xuất phải có các nhân công vận hành điều này sẽ gây lãng phí nhân lực, từ đó chi phi sản xuất sẽ tăng cao

Từ những ưu và khuyết điểm trên cho thấy vai trò quan trọng của việc áp dụng kỹ thuật điều

khiển tự động vào các dây chuyền sản xuất Do đó trong đồ án này tôi chọn đề tài “Thiết kế

mô hình băng chuyền phân loại sản phẩm theo chiều cao ứng dụng vi điều khiển PIC18F2550” Trong mô hình này toàn bộ hệ thống sản xuất (ở đây là hệ thống băng chuyền)

sẽ được điều khiển một cách tự động thông qua máy tính ở phòng điều khiển, điều này giải quyết được những bất lợi ở trên như quá trình sản xuất sẽ được thiết lập trước trên máy tính, sau đó người điều khiển chỉ cần ra lệnh khởi động hệ thống sẽ hoạt động hoàn toàn tự động theo các thiết lập đó vì vậy dây chuyền sản xuất sẽ hoạt động một cách liên tục từ đó nâng cao hiệu suất sản xuất nhưng chỉ với một người điều khiển duy nhất Đồng thời người vận hành được cách ly hoàn toàn với thao tác cơ khí nguy hiểm như đã đề cập ở trên và việc điều khiển trơ nên linh hoạt hơn và người vận hành có thể theo dõi được các trạng thái hoạt động của hệ thống qua giao diện trực quan trên màn hình máy tính giúp kiểm soát được quá trình sản xuất

1.2 Ý nghĩa thực tế

Mô hình này có thể áp dụng cho các dây chuyền sản xuất của các xí nghiệp vừa và nhỏ với mức chi phí nhỏ

1.3 Giới hạn nghiên cứu

Trang 6

 Trình biên soạn và biên dịch ngôn ngữ C (CCS) dành cho vi điều khiển PIC.

 Trình biên soạn VB.net cho phần mềm điều khiển trên máy tính

1.4 Yêu cầu đặt ra

dùng để đưa thùng vào

Có cảm biến để đếm sản phẩm cao, thấp, thùng

 Có khả năng thiết lập số sản phẩm trong một thùng hoặc số thùng qua phầm mềm điều khiển trên máy tính thông qua giao tiếp USB và có khả năng lưu trữ dữ liệu hoạt động

trong phiên hoạt động

1.5 Phương pháp nghiên cứu

 Tìm hiểu Vi điều khiển PIC18F2550

 Tìm hiểu về LED 7 đoạn và cách thức giao tiếp

 Tìm hiểu về động cơ một chiều

 Tìm hiểu về động cơ bước

 Tìm hiểu về trình biên dịch CCS, viết chương trình, biên dịch ra file hex và nạp cho Vi

điều khiển

 Tìm hiểu sơ lược về ngôn ngữ lập trình hướng đối tượng VB.net

 Thiết kế mô hình hệ thống băng chuyền và lắp đặt các sensor vào các vị trí trên mô

hình

 Thiết kế mạch in board điều khiển

 Mô phỏng hoạt động của hệ thống trên máy tính sử dụng Proteus 7.7

 Hoàn thiện và mô phỏng trên mô hình thật

Trang 7

CHƯƠNG 2: GIỚI THIỆU VỀ VI ĐIỀU KHIỂN PIC18F2550

2.1 Vi điều khiển PIC18F2550

Hình 2.1 Sơ đồ chân PIC18F2550

2.1.1 Giới thiệu chung

PIC là viết tắt của từ Programmable Intelligent Computer (Máy tính khả trình thông minh) do hãng General Intrument đặt tên Vi điều khiển đầu tiên có tên mã là PIC1650, các thế hệ sau của dòng sản phẩm này do Microchip có trụ sở tại Mỹ tiếp tục phát triển Các sản phẩm của Mircochip rất đa dạng từ 10Cxxx,12Cxxx,… đến PIC16, PIC18, PIC24, PIC30, PIC33, PIC32MX…được phân loại thành các tầng như thấp, trung, cao phù hợp với các ứng dụng từ

cơ bản tới phức tạp của người dùng

2.1.2 Phân loại PIC theo ký tự

của nó ví dụ PIC16C59,16C54 Đặc điểm của loại này là chỉ nạp chương trình được một lần duy nhất

Nhóm Flash, với đặt trưng là có ký tự “F” nằm sau mã dòng của nó ví dụ PIC16F88, PIC18F2550…Đặt điểm của loại này là có thể tái nạp lại được nhiều lần do bộ nhớ

chương trình là Flash(F).Tùy theo dòng PIC mà số lần tái nạp lại khác nhau Ví dụ với những chip đời cũ như PIC16F84 chỉ nạp lại được 1.000 lần, với những chip đời cao

hơn hiên nay thì có thể đạt đến 10.000 lần tái nạp

 Bên cạnh đó còn có các dòng PIC sử dụng điện áp thấp (2.0V đến 5.5V) với đặt trưng

là có ký tự “LF” ví dụ như PIC16LF88…tiêu thụ năng lượng thấp hơn các PIC dòng

“F” còn tính năng thì cũng giống với các PIC cùng tên khác

2.1.3 Phân loại PIC theo dòng

PIC được chia ra làm 3 dòng :

 Dòng cơ bản (Base) gồm các họ 12Cxxx với độ dài lệnh tối đa là 12bit

Trang 8

 Dòng phổ thông (Mid-range) Gồm các họ 10Fxxx,12Fxxx,16Fxxx với độ dài tập lệnh

2.2.2 Các chức năng tích hợp trong PIC18F2550

Control, Interrupt, Isochronous và Bulk

- Hổ trợ 32 endpoint (điểm đến)

- 1 KB bộ nhớ RAM cho USB

 4 PORT (A,B,C,E) với ngõ vào và ra điều khiển độc lập

 Có 4 bộ định thời (Timer).Trong đó có 1 bộ định thời 8 bit và 3 bộ định thời 16 bit

 1 bộ chuyển đổi số sang tương tự (ADC) 10 bit với 10 ngõ vào đa hợp

 2 bộ so sánh tương tự (Comparator)

 Hỗ trợ chuẩn giao tiếp SPI và giao tiếp I2C

 Hỗ trợ giao tiếp nối tiếp (EUSART)

 Nạp chương trình bằng cổng nối tiếp ICSP (In Circuit Serial Programming)

 Tần số dao động tối đa lên đến 48MHz do đó tăng tốc độ xử lý cho vi điều khiển.Ngoài

ra có thể sử dụng dao động nội bằng cách thiết lập qua phần mềm mà không cần sử dụng thạch anh ngoài, hỗ trợ nhân tần bằng PLL(Phase Lock Loop) cho module USB

2.2.3 Cấu trúc phần cứng của PIC18F2550

Trang 9

Hình 2.2 Sơ đồ cấu trúc phần cứng PIC18F2550 2.2.4 Tổ chức bộ nhớ chương trình của PIC18F2550

Trang 10

Hình 2.3 Sơ đồ tổ chức bộ nhớ PIC18F2550

PIC18F2550 với bộ nhớ chương trình lên đến 32Kbyte có thể lưu trữ được tối đa 16.384 cấu trúc lệnh (16bit) chạy từ địa chỉ 0018h tới 07FFh với 32 stack Từ địa chỉ 8000f tới 1FFFFFh không có hiệu lực, do đó khi người sử dụng truy cập tới các địa chỉ thuộc vùng này sẽ trả về giá trị 0 (Read 0) Như trong sơ đồ tổ chức bộ nhớ ta thấy nó có tới 2 địa chỉ vectơ

ngắt với 2 mức độ ưu tiên là cao và thấp, điều này có nghĩa là chúng ta có thể thiết lập được

cơ cấu “ngắt trong ngắt” tức là khi thực hiện chương trình ngắt thứ nhất có mức ưu tiên thấp hơn ngắt thứ hai, vậy khi có ngắt thứ hai xảy ra lúc đó thì con trỏ chương trình sẽ trỏ tới ngắt

có mức ưu tiên cao hơn Đây là một cải tiến có mà không thể thực hiện được trong dòng PIC thấp hơn

2.2.5 Tổ chức bộ nhớ dữ liệu của PIC18F2550

Trang 11

Hình 2.4 Sơ đồ tổ chưc bộ nhớ dữ liệu PIC18F2550

Như ta thấy trên Hình 2.4 thì bộ nhớ dữ liệu (RAM) của PIC18F2550 được phân phối đêù ra trên 8 Bank chạy từ Bank 0 tới Bank 7, mỗi bank chứ 256 byte bộ nhớ tổng cộng 8 bank có

2048 byte bộ nhớ Trong đó khi người sử dụng có sử dụng tới chức năng giao tiếp USB thì các

Trang 12

bank từ 4 đến 7 được sử dụng cho mục đích làm bộ đệm nhớ dữ liệu cho USB Khi không sử dụng tới chức năng USB thì số ô nhớ này được trả tự do cho các mục đích khác Có thể gọi đây là bộ nhớ chia sẻ

Khi truy cập vào các bank từ 8 đến 14 thì giá trị nhận được là 0 vi nó không hiện diện Bank 15 ở 4 bit cao dùng chứa giá trị các thanh ghi đặc biệt (SFR)

2.3 Các PORT và thanh ghi trong PIC18F2550

Hình 2.5 Các thanh ghi PIC18F2550

Trang 13

2.3.1 PORTA và các thanh ghi liên quan

Bảng 2.1 Bảng chức năng các chân trong PORTA

Trang 14

Port A gồm có 7 chân từ chân A0 tới A6 Ngoài chức năng xuất nhập dữ liệu số các chân này còn được đa hợp với các module khác như ADC, Comparator, Timer 0, External USB tranceiver và riêng chân A6 mặc định là ngõ vào thứ 2 của thạch anh ngoài

Để thiết lập các chân này nhận hoặc xuất dữ liệu số (I/O) cần thiết lập trên thanh ghi TRISA, nếu cấu hình chân nhập thì set là “1”, nếu cấu hình chân xuất thì set là “0”

Ngoài ra để cấu hình sử dụng các module khác ta chỉ cần set các bit trong các thanh ghi tương ứng với chức năng ở chân đó Các bit này được cho trong bảng sau :

Bảng 2.2 Bảng cấu hình bit cho các chức năng mở rộng trên PORTA

Trang 15

Bảng 2.3 Bảng chức năng các chân trong PORTA

Trang 16

Bảng 2.4 Bảng chức năng các chân trong PORTA (Tiếp theo)

Port B gồm có 8 chân từ chân B0 tới B7 Ngoài chức năng xuất nhập dữ liệu số các chân này còn được đa hợp với các module khác như 3 module ngắt ngoài (External Interrupt) INT0, INT1,INT2, module giao tiếp I2C, ADC, External USB tranceiver, module CCP2 (Capture, Compare, PWM), ngắt onchange (xảy ra khi có bất kỳ thay đổi nào trên các chân từ RB4 đến RB7.Riêng 2 chân RB6, RB7 còn là 2 chân giao tiếp ICSP(In-Circuit Serial Programming) dùng để nạp file hex vào PIC

Để thiết lập các chân này nhận hoặc xuất dữ liệu số (I/O) cần thiết lập trên thanh ghi TRISA, nếu cấu hình chân nhập thì set là “1”, nếu cấu hình chân xuất thì set là “0”

Ngoài ra để cấu hình sử dụng các module khác ta chỉ cần set các bit trong các thanh ghi tương ứng với chức năng ở chân đó Các bit này được cho trong bảng sau :

Bảng 2.5 Bảng cấu hình bit các chức năng mở rộng trên PORTB

2.3.3 PORTC và các thanh ghi liên quan

Trang 17

Bảng 2.6 Bảng chức năng các chân trong PORTC

Trang 18

Bảng 2.7 Bảng chức năng các chân trong PORTC (Tiếp theo)

Port C gồm có 7 chân từ chân C0 tới C2 và chân C4 tới C7, không có chân C3 Ngoài chức năng xuất nhập dữ liệu số các chân này còn được đa hợp với các module khác như 2 module định thời (Timer 1 và Timer 3), module CCP1 (Capture, Compare, PWM), một module truyền thông nối tiếp (EUSART)

Để thiết lập các chân này nhận hoặc xuất dữ liệu số (I/O) cần thiết lập trên thanh ghi TRISA, nếu cấu hình chân nhập thì set là “1”, nếu cấu hình chân xuất thì set là “0” Cần chú ý đối với chân C4 và C5 sẽ không có hiệu lực đối với lệnh set TRISC do 2 chân này chỉ dùng cho truyền thông USB (Universal Serial Bus) do đó chỉ còn lại 5 chân có chức năng xuất nhập

Ngoài ra để cấu hình sử dụng các module khác ta chỉ cần set các bit trong các thanh ghi tương ứng với chức năng ở chân đó Các bit này được cho trong bảng sau :

Bảng 2.8 Bảng cấu hình các chức năng mở rộng trên PORTC 2.3.4 PORTE và các thanh ghi liên quan

Bảng 2.9 Bảng chức năng các chân trong PORTE

Đối với PIC18F2550 PORT E chỉ có duy nhất 1 chân là RE3, chân này chỉ có chức năng nhập, không có chức năng xuất Mặc đinh nó là chân RESET(MCLR) của PIC, để RE3 là một chân nhập thì ta phải cấu hình trong Configbit ở bit MCLRE = 0 Ngoài ra đây là chân Vpp chỉ sử dụng khi ta nạp file hex và vi điều khiển

Trang 19

2.4 Chức năng ngắt ngoài trong PIC18F2550

2.4.1 Giới thiệu về các nguồn ngắt trong PIC18F2550

Hình 2.6 Cấu trúc phần cứng các nguồn ngắt trong PIC18F2550

PIC18F2550 có tất cả 21 nguồn ngắt như ta thấy trên hình trên Đặt biệt trong dòng PIC18Fxxx trở đi có bổ sung tính năng ngắt ưu tiên, ngắt nào có mức ưu tiên cao hơn thì sẽ được ưu tiên phục vụ trước trong trường hợp 2 ngắt xảy ra cùng lúc Ddieuf này đặc biệt có lợi khi trong một công việc nào đó khi có 1 công việc trong ngắt được thực thi mà công việc kia quan trọng hơn thì sẽ ưu tiên tạm dừng ngắt hiện tại lại và nhảy và ngắt ưu tiên khi xong lại quay trở về công việc đang dang dở

Để sử dụng các ngắt trên ta phải cho phép ngắt toàn cục tức bit GIE(Global Interrupt Enable) = 1 Sau đó set các bit cho phép của các nguồn ngắt cần sử dụng ví dụ như bit INT0IE,TMR0IE…

Trong đồ án này ta chỉ để đếm sản phẩm nên tôi ta sẽ tập trung vào phân tích cũng như cách thức sử dụng của ngắt ngoài trong PIC18F2550

Trang 20

PIC18F2550 tích hợp 3 module ngắt ngoài INT0, INT1, INT2 sau đây chúng ta sẽ đi vào phân tích các ngắt này

2.4.2 Ngắt ngoài INT0, INT1, INT2

Bảng 2.10 Thanh Ghi INCON

Bảng 2.11 Thanh Ghi INCON2

Bảng 2.12 Thanh Ghi INCON3 2.4.2.1 Ngắt ngoài INT0

Các bít liên quan tới ngắt ngoài INT0:

 Bit INT0IF : Cờ ngắt 0, khi sử dụng cần set bit này về 0, khi có ngắt xảy ra bit này được set lên 1 và nhờ vào bit này mà ta xác định được khi nào có ngắt xảy ra

 Bit GIE : Bit cho phép ngắt toàn cục, để sử dụng các ngắt thì bit này phải được set lên

1, 0 nếu không cho phép xảy ra tất cả các ngắt

 Bit INT0IE : Bit cho phép ngắt ngoài 0, 1 cho phép, 0 không cho phép

thấp lên cao, 0 nếu chọn cạnh từ cao xuống thấp

 Đối với ngắt ngoài 0 thì mặc định ở ngắt ưu tiên cao nên không có bit INT0IP

2.4.2.2 Ngắt ngoài INT1

Các bít liên quan tới ngắt ngoài INT1:

 Bit INT1IF : Cờ ngắt 1, khi sử dụng cần set bit này về 0, khi có ngắt xảy ra bit này được set lên 1 và nhờ vào bit này mà ta xác định được khi nào có ngắt xảy ra

 Bit GIE : Bit cho phép ngắt toàn cục, để sử dụng các ngắt thì bit này phải được set lên

1, 0 nếu không cho phép xảy ra tất cả các ngắt

 Bit INT1IE : Bit cho phép ngắt ngoài 0, 1 cho phép, 0 không cho phép

thấp lên cao, 0 nếu chọn cạnh từ cao xuống thấp

 Bit INT1IP : Bit cho phép cài đặt mức ưu tiên, 1 nếu ưu tiên cao, 0 nếu ưu tiên thấp

2.4.2.2 Ngắt ngoài INT2

Các bít liên quan tới ngắt ngoài INT2:

 Bit INT2IF : Cờ ngắt 2, khi sử dụng cần set bit này về 0, khi có ngắt xảy ra bit này được set lên 1 và nhờ vào bit này mà ta xác định được khi nào có ngắt xảy ra

Trang 21

 Bit GIE : Bit cho phép ngắt toàn cục, để sử dụng các ngắt thì bit này phải được set lên

1, 0 nếu không cho phép xảy ra tất cả các ngắt

 Bit INT2IE : Bit cho phép ngắt ngoài 0, 1 cho phép, 0 không cho phép

thấp lên cao, 0 nếu chọn cạnh từ cao xuống thấp

 Bit INT2IP : Bit cho phép cài đặt mức ưu tiên, 1 nếu ưu tiên cao, 0 nếu ưu tiên thấp

2.5 Tìm hiểu về USB

Cổng USB (Universal Serial Bus) thực chất là một bus nối tiếp được phát triển bởi một nhóm các công ty Compaq, DEC, IBM, Intel, Microsoft, NEC và Nortel Ý tưởng là thiết kế ra một cổng có thể dể dàng kết nối với các thiết bị khác nhau USB được phát triển qua các phiên bản sau :

 USB 1.0 : Được phát triển năm 1996, là phiên bản đầu tiên, tốc độ truyền dữ liệu với máy tính đạt

 USB 1.1 : Được phát triển năm 1997 Thừa hưởng và phát triển từ USB 1.0, bên cacnhj các tính năng như của USB 1.0 thì còn hỗ trợ 2 tốc độ 12Mbit/s (Fullspeed), 1.5Mbit/s (Slowspeed)

 USB 2.0 : Được giới thiệu năm 2000, tương thích với các thiết bị trước và còn thêm hỗ trợ truyền với tốc độ cao 480Mbit/s (High-speed) Tháng 12/2000 công ty ECN đưa ra chuẩn đầu nối mới kiểu B

 USB 3.0 : Ra đời năm 2008 với tốc đọ có thể gấp hàng chục lần so với phiên bản USB2.0

Với các máy tính sản xuất gần đây đều được trang bị giao tiếp USB cho phép kết nối dễ dàng tới các thiết bị như, máy in, điện thoại di động, camera, các thiết bị đo lường…

Về mặt phần mềm thì từ phiên bản windows 95 đã có một số hỗ trợ cho USB, đến phiên bẩn windows XP trở đi thì USB đã được hỗ trợ hầu như toàn diện giúp cho việc giao tiếp này trở nên dễ dàng và tiện lợi Một số đặc điểm của USB :

 Dễ dàng sử dụng : không phải quan tâm nhiều tới các cài đặt và thiết lập chi tiết Điều khiển dữ liệu thông qua bộ đệm bằng việc quarnlys giao thức đặt sẳn bên trong

 Nhanh : không bị hiện tượng “thắt cổ chai” đối với các thiết bị giao tiếp chậm

 Tin cậy : do ít xảy ra lỗi do có cơ chế xử lí lỗi

 Mềm dẻo : Có thể kết nối nhiều loại thiết bị với loại kết nối này

 Cung cấp nguồn trên bus, điều này rất tiện lợi với các thiết bị xách tay nhỏ

 Được hỗ trợ bởi hệ thống : khi căm thiết bị mới vào máy tính thì hệ thống sẽ tự động tìm driver và cài đặt, đặc tính này còn được gọi là Plug and Play (PnP) mà các chuẩn giao tiếp khác như RS232, LTP 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 bus USB

Trang 22

Bảng 2.13 Bảng so sánh các chuẩn giao tiếp

2.5.1 Mô hình USB

Cấu trúc cơ bản của USB là các tầng hình sao Một hệ thống USB là hệ thống bao gồm nhiều thiết bị ngoại vi, một hay nhiều HUB và một chủ (HOST CONTROLLER) duy nhất thường là máy tính Chủ điều khiển chặt chẻ và kết nối với Root Hub để mở rộng các diển nối đến chủ

Từ Root Hub sẽ kết nối tới nhiều thiết bị hoặc các Hub khác Hub là các thiết bị dùng để mở rộng các cổng, một Hub bao gồm một Upstream kết nối đến chủ và vài downstream kết nối đến các thiết bị bên ngoài

Trang 23

Hình 2.7 Mô hình cấu trúc giao tiếp USB

Máy chủ HOST sẽ liên tục hỏi vòng các Hub, khi một thiết bị được cắm vào bus, Hub sẽ báo cho HOST biết có thiết bị được cắm vào, HOST sẽ đưa ra lệnh cho phép và thiết lập lại cổng

đó sau đó nó HOST sẽ gởi một yêu cầu về một bảng mô tả thiết bị Từ bảng môt tả nhận được HOST sẽ biết được các 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ị HOST sẽ 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ị

Độ với các thiết bị được hỗ trợ driver trong hệ thống chúng thường được xếp chung vào một lớp Khi nhận được một khai báo lớp từ một thiết bị nào đó,hệ thống sẽ gọi drver điều khiển thiết bị mà không cần nạp thêm driver cho thiết bị nữa Ví dụ như khi cắm một thiết bị thuộc lớp HID (Human Interface Device) khi đó hệ thống sẽ tự động nạp driver để điều khiển cho thiết bị đó

Trang 24

Bảng 2.14 Bảng các lớp thiết bị window hỗ trợ

2.5.2 Các kiểu truyền trong USB

Dữ liệu giao tiếp trong USB sử dụng một trong 4 kiểu truyền: truyền ngắt, truyền điều khiển, truyền khối và truyền đồng bộ

 Truyền điều khiển (Control Transfer) : Thường sử dụng để cài đặt phần cứng và đưa ra các lệnh điều khiển thiết bị Kiểu này được thực hiện ở mức ưu tiên cao với khả năng

tự động kiểm soát lỗi, mỗi gói truyền có thể lên tới 64byte

 Truyền ngắt (Interrupt Transfer) : Sử dụng cho các thiết bị trao đổi với máy tính với lượng dữ liệu nhỏ và tuần hoàn như chột, bàn phím Không giống như cơ chế ngắt mà

ơ đây HOST sẽ hỏi vòng liên tục theo chu kỳ xem có thiết bị nào gởi dữ liệu tới không Thường thì dữ liệu gởi tới HOST 8 byte dữ liệu cho một lần truyền

 Truyền khối (Bulk Transfer) : Khi có lượng dữ liệu lớn cần truyền và kiểm soát lỗi và không có yêu cầu thúc ép về mặt thời gian thì thường dùng kiểu này, các thiết bị thường dùng trong kiểu này như máy in, máy quét

 Truyền đồng bộ (Isochronous Transfer) : Khi dữ liệu cần truyền lớn với quy định về mặt thời gian ví dụ như card âm thanh thì thường dùng kiểu truyền này Theo cách truyền này thì giá trị tốc độ dữ liệu truyền được duy trì Việc kiểm tra lỗi không được thực hiên trong kiểu truyền này do các lỗi lẻ tẻ không ảnh hưởng đáng kể tới chất lượng truyền này

2.5.3 Giao diện vật lý bus USB

Bus USB có hai kiểu đầu nối thông dụng là kiểu A và B Khác với chuẩn giao tiếp RS232 là đấu nối ở USB không phân chia các kiểu nối nư bắt chéo hay không bắt chéo Nó gồm một

Trang 25

cáp 4 dây trong đó hai dây xoắn nhau dùng làm dữ liệu vi sai (D+ và D-), còn hai dây nguồn là 5V và GND với dòng cung cấp tối đa là 500mA/cổng

Hình 2.8 Thứ tự chân và đấu nối của cáp USB

Bảng 2.9 Hình dáng thực tế của các jack cắm USB

Ngoài 2 kiểu chân cắm A, B còn có dạng mini jack tường dùng cho các thiết bị nhỏ như điện thoại di động

Lưu ý là các cáp sử dụng cho các thiết bị được nhà sản xuất tính toán phù hợp cho với tốc độ của thiết bị đó khi sử dụng cáp tốc độ thấp cho thiết bị có tốc độ cao sẽ không tận dụng được hết tốc độ đó được

Trang 26

Hình 2.10 Kết nối với thiết bị USB Fullspeed

Hình 2.11 Kết nối với thiết bị USB Slowspeed

Như hai hình trên mô tả các thưc kết nối các điện trở bên phía thiết bị để cấu hình tốc độ cho USB Đồng thời 2 điện trở này dùng để báo cho HOST biết có thiết bị được cắm vào

2.5.4 Giao thức truyền

2.5.4.1 Các trường truyền thông USB

Thứ tự truyền trong bus USB là truyền bit LSB trước sau cùng tới bit MSB Có 4 loại gói truyền: gói nhận dạng (Token), gói dữ liệu (Data), gói khởi đầu khung và gói bắt tay (Handshake),trong mỗi gói lại có nhiều trường

nhị phân NRZI (Non Return to Zero Inverted) của chuổi “KJKJKJ” Việc sử dụng SYNC trong bắt đầu khung cũng giống như bit start trong RS232 Tất cả cac gói đều giới hạn giữa SOP (Start of Packet) và EOP (End of Packet)

 Trường nhận dạng (PID): Sau ngay trường SYNC trong mỗi gói của USB Gói có chiều dài 8 bit, 4 bit thấp là 4 bit nhận dạng gói, 4 bit cao là đảo của 4 bit thấp nhằm kiểm soát lỗi trong khi truyền Trường PID mô tả loại gói sẽ được truyền sau đó Cả HOST và thiết bị đều nhận được trường nhận dạng đã được quy định Nếu mã nhận dạng không có trong các mã đã quy định thì HOST sẽ không hỗ trợ

Trang 27

Bảng 2.15 Các loại gói truyền trong USB

 Trường địa chỉ (ADRR) : là địa chỉ riêng truy cập tới thiết bị Thiết bị có thể nhận dữ liệu hoặc truyền dữ liệu về máy chủ phụ thuộc vào gói nhận dạng PID thông qua địa chỉ của nó Trường địa chỉ gồm 7bit Trường địa chỉ có trong các gói IN, OUT, SETUP Mỗi địa chỉ chỉ định cho một thiết bị đơn lẻ Khi vừa được cấp nguồn thiết bị

có địa chỉ mặc định là 0 và HOST nhận bảng mô tả thiết bị tại địa chỉ mặc định này

điểm cuối trong thiết bị Trừ điểm zero, số điểm cuối là riêng bieetjcho từng thiết bị chức năng Một điểm cuối là địa chỉ của một bộ đệm trong thiết bị, trường địa chỉ được định nghĩa trong gói IN, OUT, SETUP Từ điểm cuối tới HOST thiết lập một kênh trao đổi thông tin gọi là ống (PIPE) Tất cả các thiết bị chức năng đều hỗ trợ một đường ống mặc định với điểm cuối là zero HOST sẽ trao đổi với thiết bị mới gắn qua ống này

2.5.4.2 Các gói trong tuyền thông USB

Có 3 loại gói bắt tay:

 ACK: Trả lời dữ liệu đã nhận thành công

 NAK: Báo thiết bị không trả lời hoặc dữ liệu nhận bị lỗi Tất cả các gói bắt tay đều được truyền theo kiểu ngắt để báo cho HOST biết đữ liệu không được gởi

cầu không hỗ trợ

Trang 28

Hình 2.12 Các gói bắt tay

2.5.4.3 Quá trình truyền của các kiểu truyền thông USB

2.5.4.3.1.Truyền điều khiển

Truyền điều khiển thực hiện qua 3 giai đoạn : Setup, Data và Status Đối với thiết bị slowspeed kích thước gói tin là 8 byte, thiết bị fullspeed là 8,16,32 hoặc 64 byte

 Giai đoạn 1 SETUP : Gồm 3 gói tin :

o Gói nhận dạng : Do HOST gởi tới thiết bị Trong gói này HOST gởi địa chỉ và điểm cuối thiết bị

o Gói dữ liệu : được gởi ngay sau gói SETUP kết thúc và trường PID của gói luôn là kiểu DATA0

o Gói bắt tay : Là gói cuối cùng, do thiết bị trả lời, ACK nếu không có lỗi, NAK nếu có lỗi

Hình 2.13 Các gói tin trong giai đoạn 1

Giai đoạn 2 DATA : cũng chứa 3 gói tin : nhận dạng, dữ liệu và bắt tay

o Gói nhận dạng : Chỉ ra chiều dữ liệu là IN hay OUT

o Gói dữ liệu : Chứa dữ liệu cần truyền

o Gói bắt tay :

+ Trường hợp dữ liệu có chiều từ thiết bị tới HOST Nếu không có lỗi xảy ra thì dữ liệu truyền vào HOST Nếu có lỗi xảy ra tùy vào lỗi mà HOST sẽ trả lời

là NAK hoặc STALL

+ Trường hợp dữ liệu có chiều từ HOST về thiết bị, thì gói dữ liệu sẽ gởi về thiết bị

+ Gói bắt tay : Khi nhận được dữ liệu, HOST sẽ trả lời bằng các gói ACK,

NAK, STALL tùy theo trương hợp nhận được

Trang 29

Hình 2.14 Các gói tin trong giai đoạn 2

Giai đoạn 3 (Status Stage) :

o Chiều vào : Tùy vào chiều trao đỗi dữ liệu có xảy ra lỗi hay không mà thiết bị

sẽ trả lời cho HOST các giá trị ACK, NAK, STALL

o Chiều ra : HOST gởi các gói trả lời ra thiết bị

Hình 2.15 Các gói tin trong giai đoạn 3

2.5.4.3.2 Truyền ngắt trong USB

Không giống như những kiểu truyền theo cơ cấu ngắt mà ta đã biết Truyền ngắt trong USB chỉ đơn giản do HOST hỏi vòng Nếu một thiết bị cắm vào HOST nó sẽ phải đợi cho tới khi HOST hỏi tới nó và đáp ứng Quá trình truyeeng ngắt chỉ xảy ra 3 gói tin mỗi lần truyền Truyền ngắt quy định kích thước gói tùy thuộc vào tốc độ của các thiết bị

 Thiết bi Slowspeed : 8 byte

 Thiết bi Fullspeed : 64 byte

 Thiết bị Highspeed: 1024 byte

Trang 30

Hình 2.16 Các gói tin trong truyền ngắt

Các giai đoạn truyền ngắt :

 Interrupt IN : HOST sẽ hỏi các điểm cuối ngắt theo chu kỳ Tốc độ quét hỏi vòng cụ thể được đặt trong gói mô tả điểm cuối của mỗi thiết bị Mỗi khi hỏi vòng yêu cầu chủ phải gởi một IN TOKEN Nếu IN TOKEN bị hỏng Thiết bị bỏ qa TOKEN này và tiếp tục giám sát các TOKEN mới Nếu có yêu cấu thiết bị gởi một gói dữ liệu tới HOST và

chờ HOST trả lời Nếu không có ngắt, thiết bị trả lời chủ bằng NAK hay STALL

 Interrupt OUT : Khi HOST muốn gởi dữ liệu tới thiết bị ngắt, nó phải phát ra một OUT TOKEN và theo sau là một Interrupt Data Nếu OUT TOKEN hoặc gói Data bị hỏng thì thiết bị sẽ bỏ qua gói này Nếu bộ đệm điểm cuối ngắt của thiết bị trống nó sẽ trả về gói ACK cho HOST Trong trường hợp bộ đệm điểm cuối không trống do dữ liệ nhận trước đó thì thiết bị sẽ trả về NAK, nếu một lỗi xảy ra với một điểm cuối thì nó sẽ

trả về NAK

2.5.4.4 Quá trình điểm danh thiết bị (Enumerate)

Điểm danh là một quá trình xảy ra độc lập xảy ra liên tục do hệ điều hành điều khiển Khi cắm một thiết bị USB vào hệ thống, nhờ vào điên trở nối lên ở chân dữ liệu giúp hệ điều hành nhận biết có một thiết bị được cắm vào Khi hệ điều hành nhận biết có thiết bị cắm vào nó sẽ yêu cầu thiết bị cung cấp thông tin về thiết bị Thiết bị đó có nhiêm vụ cung cấp thông tin về mình dưới dạng một bảng mô tả (Description) Bản mô tả là một bảng dữ liệu có cấu trúc được quy định chính xác về mặt nội dung, cách sắp xếp dữ liệu và chiều dài của nó Hệ điều hành dựa và các thông tin mô tả đó mà gọi trình điều khiển tương ứng

Quá trình điểm danh các thiết bị USB diễn ra theo các bước sau :

 Hub thông báo cho hệ điều hành biết có một thiết bị mới được cắm vào

 Máy chủ hỏi lại Hub xem thiết bi được cắm vào cổng nào

 Sau khi biết thiết bị nối vào cổng nào, máy chủ ra lệnh nối sang cổng đó và thao tác đặt lại bus

 Hub tạo tín hiệu reset có độ dài 10ms, và cấp dòng 100mA cho thiết bị Bây giờ thiết bị

đã sẵn sàng hoạt động và trả lời qua địa chỉ mặc định là 0

 Máy chủ đọc 8 byte đầu tiên của bảng mô tả để xác định chiều dài cụ thẻ của gói dữ liệu

Trang 31

 Máy chủ gán cho thiết bị một bus riêng

 Máy chủ gán cho thiết bị một cấu hình cụ thể Bây giờ thiết bị có thể lấy ra dòng điện cung cấp đúng như khai báo trong bảng mô tả cấu hình và sẳn sàng đưa vào sử dụng

Mỗi yêu cầu trên HOST được bộ vi xử lý của thiết bị nhận ra và trả lời Tại mỗi điểm cuối (Endpoint) trên thiết bị được bố trí một bộ nhớ FIFO (First In, Fist Out) làm bộ đệm vào ra Khi nhận được dữ liệu bộ xử lý phân tích lệnh, đọc dữ liệu cài đặt trên ROM và ghi lên bộ đệm ra Thông tin đầu tiên thiết bị gởi là bảng mô tả thiết bị có độ dài 18 byte Máy chủ đọc 8 byte đầu tiên để xác định lớp của thiết bị sau đó đọc hết các byte còn lại Từ các thông tin có được hệ điều hành chỉ định phầm mềm điều khiển thiết bị Các mô tả này được gán vào các trường sau :

Bảng 2.16 Các trường mô tả thiết bị

bDeviceClass : Chứa mã lớp thiết bị, chỉ cho biết nó thuộc lớp thiết bị nào

bDeviceSubClass : Sử dụng nhận biết lớp con trong một lớp xác định

 idVendor và idProduct : Chứa thông tin về số hiệu sản phẩm và số hiệu nhà sản xuất

máy chủ dùng thông tin này để gói diver điều khiển thiết bị

bcdDevice : Chứa thông tin về version

bNumConfiguration : Chỉ ra số cấu hình ứng với tốc độ hiện tại

Các bảng mô tả cấu hình có cấu trúc phân lớp, cho phép mô tả các thông số khác nhau đối với từng nhóm thiết bị cụ thể

Trang 32

Hình 2.17 Cấu trúc hình cây của bảng mô tả thiết bị

Ở trên là các trường chủ yếu nhất trong quá trình điểm danh và cấu hình các thông số để thiết

bị USB có thể nhận diện và hoạt động được Ngoài ra còn có nhiều các thông số mô tả mở rộng khác như các thông số mô tả về chế độ nguồn (MaxPower) cho USB bus, chế độ đánh thức (RemoteWakeup)và cho những thiết bị có nhiều cấu hình hoặc có các thông số phức tạp khác

Trang 33

2.5.5 Module USB trong PIC18F2550

PIC18F2550 tích hợp module truyền nhận USB với các giai đoạn truyền như đã bàn ở phần trên nên trong phần này chúng ta sẽ tìm hiểu về module này để có thể truyền nhận được dữ liệu một cách đơn giản nhất có thể

Hình 2.18 Module USB trong PIC18F2550

Trang 34

Hình 2.19 Cấu trúc khối tạo xung clock cho module USB

Hình trên là cấu trúc phần cứng của khối tạo xung clock cho PIC cũng như module USB Khối Clock cho USB nhận xung chính từ thạch anh của hệ thống, qua khối PLL Prescaler để chia tần số xuống 4MHz sau đó qua khối PLL để nhân tần lên 96MHz rồi lại chia 2 để đạt được tần

số 48MHz chuẩn cho module USB hoạt động Đối với cấu trúc này, tốc độ của module USB

sẽ nhanh hơn tốc độ của CPU, và khi sử dụng chức năng USB bắt buộc phải có nguồn xung ngoài hoặc thạch anh mà không sử dụng được dao động nội

Việc cấu hình cho đúng tốc độ cho module USB rất quan trọng, vì nếu cấu hình sai tốc

độ module sẽ không thể giao tiếp được Trong CCS cấu hình này được thực hiện thông qua các bit config khá đơn giản như sau :

#fuses

HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN

Bảng 2.17 Thanh ghi cấu hình UCFG

Trang 35

 Bit UPUEN : cho phép chọn điện trở kéo lên (Pull-up) để kích hoạt chế độ Slowspeed hoặc Fullspeed Nếu không sử dụng điện trở kéo lên, 1 nếu sử dụng điện trở kéo lên

 Bit FSEN : Cho phép điện trở kéo lên ở chân D- tức kích hoạt chế độ truyền Fullspeed 12Mbit/s Khi FSEN = 0 thì kích hoạt điện trở kéo lên ở chân D+ tức mặc định là ở chế

độ truyền Slowspeed

 Bit UTRDIS : Cho phép sử dụng module truyen nhận tích hợp trong PIC khi set nó bằng 0, và không sử dung module truyền nhận nội thì set 1

Tóm tắt các bước chính để giao tiếp USB :

Bảng 2.18 Thanh ghi trạng thái ngắt UIR

Bảng 2.19 Thanh ghi điều khiển UCON

1 Cấu hình clock cho USB

2 Định nghĩa các thanh ghi

3 Bật tất cả các ngắt , cấu hình tốc đọ USB, vào giai đoạn power

4 Chờ tới khi SE0 = 0

5 Xóa bít PKTDIS = 0

6 Kiểm tra các ngắt, vào giai đoạn default, xử lý ngắt RESET

7 Kiểm tra các ngắt một lần nữa, nếu cờ ngắt TRNIF = 1 là thoát khỏi giai đoạn

RESET vào giai đoạn ADRRESS ( lấy địa chỉ HOST gán vào một biến tạm)

8 Xử lý ngắt TRNIF, đọc nội dung HOST gởi xuống và set địa chỉ cho device, xóa bit

PKTDIS, xoa cò ngắt TRNIF

9 Kiểm tra bit TRNIF một lần nữa và nhận được gói IN, lúc này gán địa chỉ nhận được

từ HOST vào thanh ghi UADRR, trả lời ACK và xóa cờ ngắt TRNIF

10 Kiểm tra ngắt một lần nữa, đọc PID, nếu là ACK là thoát khỏi giai đoạn ADRRESS

Trang 36

CHƯƠNG 3 : LED 7 ĐOẠN VÀ CÁC VẤN ĐỀ LIÊN QUAN

3.1 Giới thiệu về LED 7 đoạn

Led 7 đoạn (seven segment display) là một dạng thiết bị dùng để hiển thị các số thập phân, được sử dụng nhiều trong đồng hồ điện tử số, các máy đo lường, …

Ngày nay, led 7 đoạn được sử dụng rất phổ biến trong đời sống hằng ngày như đèn giao thông, bảng báo giá, các thiết bị điện tử do đặc thù là sử dụng diode phát quang (light emitting diode) cho hiệu quả phát sáng cao đồng thời tiêu thụ năng lượng rất ít, điều khiển dễ dàng và chi phí rẻ với nhiều kích thước khác nhau phù hợp với nhiều mục đích của người sử dụng

Hình 3.1 LED 7 đoạn 3.2 Cấu tạo LED 7 đoạn

Led 7 đoạn được phân làm hai loại là common anode (dương chung) và common cathode (âm chung) Bên dưới là hai loại kể trên :

Hình 3.2 Cấu tạo bên trong của led 7 doạn

Như đã mô tả trên, loại Anode chung có tất cả các chân Anode (dương) của led nối chung với

Trang 37

cái từ A-G tương ứng với các đoạn A-G Đối với loại Cathode chung các chân Cathode(âm) của led được nối chung với nhau thành 1 chân GND, các chân còn lại được nối với các chân ra tương ứng với các thanh A-G như trên hình

Hình 3.3 Hình dáng thực tế của LED 7 đoạn

3.3 Giao tiếp với LED 7 đoạn

Việc giao tiếp với led 7 đoạn có nhiều cách từ đơn giản tới phức tạp :

 Sử dụng vi điều khiển và lập trình để xuất trực tiếp ra các mã hiển thị trên led 7 đoạn

 Sử dụng phương pháp quét led kết hợp với các IC giãi mã chuyên dụng để mở rộng số lượng led 7 đoạn

3.3.1 Giải mã theo phương pháp dùng IC giãi mã 74LS247

3.3.1.1 Giới thiệu chip 74LS247

Hình 3.4.Sơ đồ chân Chip 74LS247

Trang 38

Hình 3.5 Sơ đồ logic chip 74LS247

Các thông số kỹ thuật của chip :

 Giải mã led 7 đoạn anode chung với collecter hở (Open Collecter)

 Dòng hoạt động khi không tải là 3.2mA, có tải vào khoảng 24mA

Trang 39

Bảng 3.1 Bảng sự thật chip 74LS247 3.3.1.2 Sơ đồ kết nối với Led 7 đoạn

Hình 3.6 Giải mã led 7 đoạn dùng chip 74LS247

Tùy vào chủng loại và đặc tính của led 7 đoạn ma ta chọn thông số điện trở R phù hợp với nó

3.3.2 Giải mã led 7 đoạn theo phương pháp điều khiển trực tiếp dùng vi điều khiển

Ngoài phương pháp giải mã bằng IC chuyên dụng ta có thể dùng vi điều khiển để giải mã led

7 đoạn như hình dưới đây :

Hình 3.7 Giải mã led 7 đoạn dùng vi điều khiển

Như ta thấy trong hình, led 7 đoạn được nối trược tiếp vào Port A của vi điều khiển MPS430DG2231 chân còn lại là chân Anode chung được nối lên VCC Bên trong vi điều khiển ta sẽ viết một mảng chứa 10 phần tử, mỗi phần tử là mã của một số trong hệ thập phân,

10 phần tử tương ứng với 10 số chạy từ 0 – 9 Bằng cách gán mảng đó cho Port A, khi ta trỏ tới phần tử nào trong mảng thì Port A sẽ xuất ra mã tương ưng của phần tử đó ví dụ trong

Trang 40

trường hợp như hình trên để xuất ra số 1 thì chỉ cần cho thanh B,C sáng các thanh còn lai tắt hết thì mã phải xuất ra ở port A = 0xF9 (trong mã nhị phân là 0B11111001), tương tự như thế cho những số còn lại Với cách điều khiển này vi điều khiển chỉ điều khiển được 1 led 7 đoạn,

do đó để mở rộng điều khiển được nhiều led hơn người ta dùng tới kỹ thuật quét led 7 đoạn

Kỹ thuật này giúp cho việc giao tiếp với nhiều led 7 đoạn vói phần cứng tối thiểu, tiết kiệm năng lượng do các led không sáng liên tục

Hình 3.8 Giao tiếp led 7 đoạn bằng phương pháp quét led

Phương pháp quét led lợi dụng hiệu ưng lưu ảnh của mắt, trong trường hợp này hai led sẽ không sáng đồng thời với nhau mà sẽ luân phiên nhau bật tắt nhưng với tốc độ rất nhanh vượt qua ngưỡng nhận biết của mắt là 24 khung hình/s nên mắt người không thể phân biệt được sự chớp tắt này do đó ta sẽ thấy các led hiển thì liên tục nhau

Nguyên lý làm việc của nó như sau : Tại thời điểm thứ nhất, chân P2.7 sẽ xuất ra mức

0, chân P2.6 xuất mức 1, do đó transistor Q1 được phân cực thuận nên dẫn, ngược lại Q2 tắt, đồng thời lúc đó port A sẽ xuất ra dữ liệu (mã của số cần hiển thị trên led L1) Do Q1 dẩn nên

có dòng chạy qua Anode của led 7 đoạn nên nó sẽ hiển thị số đã xuất trên port A, Q2 không dẫn nên led L2 tắt, sau đó delay một khoản nhỏ để hiển thị giá trị trên Tại thời điểm thứ 2, chân P2.7 = 1 và chân P2.6 = 0,lúc này Q2 dẫn và Q1 tắt Port A lại xuất dữ liệu của led L2 ra

và delay một khoảng bằng với thời gian delay của L1 Quá trình cứ thế lặp đi lặp lại liên tục với chu kỳ sao cho lớn hơn thời gian nhận biết của mắt người Do đó ta thấy 2 led sẽ hiển thị liên tục

3.3.3 Kết hợp vi điều khiển với IC 74LS247 giải mã led 7 đoạn

Trong nhiều trường hợp khi ta cần sử dụng nhiều chân của vi điều khiển cho các mục đích khác trong khi việc quét led cũng tốn khá nhiều chân của vi điều khiển thì ta thường sử dụng

vi điều khiển kết hợp với IC giải mã chuyên dụng để tiết kiệm chân cho vi điều khiển.Sơ đồ

Ngày đăng: 17/02/2019, 22:25

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[3] Lê Tiến Thường - Điện tử I và II – Nhà xuất bản ĐHQG TPHCM Sách, tạp chí
Tiêu đề: Điện tử I và II
Nhà XB: Nhà xuất bản ĐHQG TPHCM
[5] Ngô Diên Tập - Lập trình ghép nối máy tính – Nhà xuất bản khoa hoc kỹ thuật Hà Nội Sách, tạp chí
Tiêu đề: Lập trình ghép nối máy tính
Nhà XB: Nhà xuất bản khoa hoc kỹ thuật Hà Nội
[8] USB Nutshell – www.beyondlogic.org Sách, tạp chí
Tiêu đề: USB Nutshell
[1] Diễn đàn PICVIETNAM.COM Khác
[2] Diễn đàn DIENTUVIETNAM.NET Khác
[4] Microchip - Datasheet PIC18F2550 Khác
[6] Phạm Đức Lập - Tài liệu hướng dẫn lập trình VB.net Khác
[7] Trần Xuân Thường - Tài liệu hướng dẫn lập trình CCS Khác
[9] Google + các nguồn khác Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w