1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Ứng dụng công nghệ nhúng cho hệ thống quản lý chấm công

94 296 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 94
Dung lượng 2,22 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khác với các máy tính đa chức năng, chẳng hạn như máy tính cá nhân, một hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng nhất định, thường đi kèm với những yêu cầu cụ thể và bao g

Trang 1

bộ giáo dục và đào tạo trường đại học bách khoa hà nội

Trang 2

Lời cam đoan

Tôi xin cam đoan rằng toàn bộ nội dung trong bài luận văn của tôi dưới

đây không được sao chép y nguyên từ một bài luận văn của một tác giả khác

Tôi cũng xin cam đoan rằng mọi sự tham khảo, trích dẫn trong bài luận văn của tôi đều đã được chỉ rõ nguồn trong danh mục Tài liệu tham khảo của luận văn

Nếu hội đồng phát hiện có những điều không đúng với những gì tôi đã cam đoan ở trên thì tôi xin chịu hoàn toàn trách nhiệm

Hà Nội, tháng 10 năm 2008 Học viên

Trang 3

LờI CảM ƠN

Em xin cảm ơn Khoa Điện tử Viễn thông, Trung tâm đào tạo Sau đại học trường đại học Bách Khoa Hà Nội đã tạo điều kiện thuận lợi cho em thực hiện đề tài này

Em cũng xin được gửi lời cảm ơn chân thành nhất đến cô giáo PGS Tiến sĩ Nguyễn Thị Việt Hương, người đã luôn tận tình chỉ bảo và hướng dẫn

em trong suốt thời gian nghiên cứu vừa qua

Bên cạnh đó, em cũng rất cảm ơn các Thầy giáo Cô giáo trong trường

đã tận tình giảng dạy và trang bị cho em thật nhiều kiến thức bổ ích trong hai năm học vừa qua, góp phần rất lớn vào việc nghiên cứu thành công luận văn này

Ngoài ra cũng xin được gửi lời cảm ơn đến hai bạn Nguyễn Đức Dũng

và Phạm Thị Dung trong việc hỗ trợ các trang thiết bị cần thiết cho quá trình thực hiện đề tài

Cuối cùng, em xin gửi lòng biết ơn sâu sắc đến cha mẹ, các bậc sinh thành đã có công nuôi dưỡng và dạy dỗ em đến ngày hôm nay; xin cảm ơn anh em, bạn bè, những người đã luôn hết lòng tận tụy chăm sóc, ủng hộ và

động viên em trong lúc khó khăn cũng như trong suốt thời gian học tập và nghiên cứu

Dù đã cố gắng hoàn thành thật tốt luận văn trong phạm vi yêu cầu, nhưng em biết có những thiếu sót chắc chắn không thể tránh khỏi Em mong

sẽ nhận được sự thông cảm và tận tình chỉ bảo của quý Thầy Cô và các bạn

Hà Nội, tháng 11 năm 2008

Học viên thực hiện:

Trang 4

Mục lục

Lời cam đoan 2

LờI CảM ƠN 3

Mục lục 4

Danh mục các hình vẽ, Bảng biểu 7

Chương 1 Mở đầu 9

1.1 Giới thiệu 9

1.2 Phạm vi đề tài 10

Chương 2 Cơ sở lý thuyết về hệ thống 13

2.1 Hệ thống nhúng 13

2.1.1 Định nghĩa hệ thống nhúng 13

2.1.2 Lịch sử hệ thống nhúng 14

2.1.3 Đặc điểm hệ thống nhúng 15

2.1.3.1 Giao diện 15

2.1.3.2 Kiến trúc CPU 16

2.1.3.3 Thiết bị ngoại vi 17

2.1.3.4 Công cụ phát triển 17

2.1.3.5 Độ tin cậy 18

2.1.4 Các kiến trúc phần mềm của hệ thống nhúng 19

2.1.4.1 Vòng lặp đơn giản 19

2.1.4.2 Hệ thống ngắt điều khiển 19

2.1.4.3 Hệ thống đa nhiệm 20

2.1.4.4 Hệ thống đa nhiệm ưu tiên 20

2.1.4.5 Nhân khối 21

2.2 Chuẩn truyền dẫn thông tin trong hệ thống 22

2.2.1 Chuẩn 2 dây (I2C) 22

2.2.1.1 Giới thiệu chung vể I2C 22

2.2.1.2 Đặc điểm I2C 22

2.2.1.3 Điều kiện START và STOP 25

2.2.1.4 Định dạng dữ liệu truyền 26

2.2.1.5 Định dạng địa chỉ thiết bị 27

2.2.1.6 Truyền dữ liệu trên bus I2C, chế độ Master-Slave 28

2.2.2 Chuẩn RS232 30

2.2.3 Mã Manchester 32

2.3 Điều khiển với màn hình LCD 16x02 34

Trang 5

2.3.1 Cấu tạo LCD 34

2.3.2 Sơ đồ chân 35

2.3.3 Nguyên lý hoạt động 35

2.3.4 Bảng lệnh của LCD 16x02 37

2.3.5 Quá trình điều khiển với màn hình LCD 16x02 37

2.4 Cấu tạo thẻ RFID 38

2.5 Vi xử lý 8 bít - Psoc 39

2.5.1 Giới thiệu về Psoc 39

2.5.2 Đặc điểm của Psoc 40

2.5.3 Cấu trúc Vi xử lý 44

2.5.4 Các cổng vào ra đa chức năng 45

2.6 Vi xử lý 32 bít - EP9302 46

2.6.1 Giới thiệu chíp 32 bít 46

2.6.2 Đặc điểm và cấu trúc của họ vi xử lý EP9302 47

2.6.3 Giới thiệu Board mạch phát triển TB500A 48

2.6.3.1 Đặc điểm của board 49

2.6.3.2 Công cụ phát triển phần mềm trên kít TB500A 49

2.6.3.3 Cài đặt và lập trình sử dụng kít TB500A 49

Chương 3 PHÂN Tích hệ thống 53

3.1 Yêu cầu chức năng 53

3.2 Phân tích các yêu cầu dữ liệu 54

3.2.1 Quy trình xử lý chấm công 54

3.3 Phân tích yêu cầu của hệ thống 60

3.3.1 Cấu hình phần cứng 60

3.3.2 Cấu hình phần mềm 60

3.4 Sơ đồ chức năng 61

Chương 4 Thiết kế hệ thống 63

4.1 Thiết kế hệ thống phần mềm 63

4.1.1 Thiết kế CSDL 63

4.1.2 Thiết kế giao diện 65

4.1.3 Thiết kế đầu vào 66

4.1.3.2 Giao diện cấu hình hệ thống (thư mục cấu hình server) 66

Trang 6

4.1.3.4 Giao diện các danh mục (thư mục Danh mục thẻ) 70

4.1.3.4 Giao diện các danh mục (thư mục Trạng thái thiết bị) 71

4.1.4 Thiết kế đầu ra 72

4.1.4.1 Báo cáo thống kê theo ngày 72

4.1.4.1 Báo cáo thống kê theo tháng 73

4.1.4.1 Báo cáo thống kê chi tiết 74

4.2 Thiết kế hệ thống phần cứng 75

4.2.1 Thiết kế sơ đồ khối 75

4.2.2 Thiết kế sơ đồ nguyên lý 76

4.2.2.1 Module RFID 76

4.2.2.2 Sơ đồ ghép nối module RFID với CPU 8 bít 77

4.2.2.3 Kít phát triển 32 bít sử dụng EP9302 82

Chương 5 Giới thiệu hệ thống và hướng dẫn sử dụng 88

5.1 Giới thiệu hệ thống 88

5.2 Hướng dẫn sử dụng 88

5.2.1 Cấu hình hệ thống 89

5.2.2 Cấu hình người sử dụng 89

5.2.3 Các danh mục 90

5.2.4 Báo cáo thống kê 91

Kết luận 93

Tài liệu tham khảo 94

Tóm tắt luận văn 95

Tóm tắt luận văn Error! Bookmark not defined

Trang 7

Danh mục các hình vẽ, Bảng biểu

Hình 1 1 Sơ đồ tổng quan hệ thống 12

Hình 2 1 Bus I2C và thiết bị ngoại vi 22

Hình 2 2 Kết nối thiết bị vào bus I2C 24

Hình 2 3 Truyền nhận dữ liệu giữa Chủ/Tớ 24

Hình 2 4 Điều kiện START và STOP của Bus I2C 26

Hình 2 5 Quá trình truyền 1 bit dữ liệu 27

Hình 2 6 Quá trình truyền byte dữ liệu đầu tiên 28

Hình 2 7 Quá trình truyền dữ liệu 28

Hình 2 8 Ghi dữ liệu từ chủ đến tớ 29

Hình 2 9 Quá trình đọc dữ liệu từ thiết bị tớ 30

Hình 2 10 Định dạng khung trên Bus RS232 30

Hình 2 11 Ví dụ truyền ký tự ‘a’ trên bus RS232 32

Hình 2 12 Mã hóa Manchester 33

Hình 2 13 Dạng tín hiệu của mã Manchester 34

Hình 2 14 Cấu tạo LCD 16x02 34

Hình 2 15 Cấu tạo thẻ RFID 125 Khz 38

Hình 2 16 Sơ đồ khối họ Psoc 43

Hình 2 17 Sơ đồ khối của chíp vi xử lý EP9302 47

Hình 2 18 Bo mạch phát triển sử dụng chíp 32 bít EP9302 48

Hình 2 19 Giao diện lập trình trên Linux 51

Bảng 2 1 Bảng sơ đồ chân của LCD 35

Bảng 2 2 Bảng lệnh của LCD 37

Bảng 2 3 Các thanh ghi của CPU 44

Bảng 2 4 Các thanh ghi vào ra đa chức năng 45

Hình 3 1 Quy trình xử lý chấm công 54

Hình 3 2 Bảng trích ngang nhân viên 56

Hình 3 3 Bảng chấm công theo ngày của công ty 58

Hình 3 4 Bảng chấm công theo tháng 59

Bảng 3 4 Bảng phân tích trích ngang cá nhân 55

Trang 8

Hình 4 1 Sơ đồ phân cấp chức năng Error! Bookmark not defined

Hình 4 2 Bảng chuẩn hóa và sơ đồ liên kết thực thể 64

Hình 4 3 Giao diện login 65

Hình 4 4 Giao diện cuấ hình hệ thống (chức năng Server) 66

Hình 4 5 Giao diện cấu hình hệ thống(Chức năng người dùng) 67

Hình 4 6 Giao diện các danh mục (Danh mục phòng ban) 68

Hình 4 7 Giao diện các danh mục (Danh mục nhân viên) 69

Hình 4 8 Giao diện các danh mục (Danh mục thẻ) 70

Hình 4 9 Giao diện các danh mục (Thông tin thiết bị) 71

Hình 4 10 Báo cáo thống kê theo ngày 72

Hình 4 11 Báo cáo thống kê theo tháng 73

Hình 4 12 Báo cáo chi tiết 74

Hình 4 13 Sơ đồ khối thiết kế thiết bị 75

Hình 4 14 Module RFID 76

Hình 4 15 Sơ đồ nguyên lý của mạch module RFID 76

Hình 4 16 Sơ đồ khối ghép nối Module RFID 77

Hình 4 17 Sơ đồ mạch nguyên lý ghép nối 77

Hình 4 18 Sơ đồ đu lây mạch lớp dưới 78

Hình 4.19 Sơ đò đi dây lớp trên 79

Hình 4 20 Thuật toán xử lý quẹt thẻ ở module quẹt thẻ 80

Hình 4 21 Thuật toán xử lý quẹt thẻ ở module ghép nối 81

Hình 4 22 Sơ đồ giải thích các thành phần của mạch CPU 32 bít 82

Hình 4 24 Sơ đồ thuật toán xử lý bản ghi quẹt thẻ 84

Hình 4 25 Lưu đồ thuật toán lưu file 85

Hình 4 26 Lưu đồ thuật toán gửi Email 86

Hình 4 27 Lưu đồ thuật toán thực hiện lệnh từ máy tính 87

Bảng 4 1 Bảng các thuộc tính 63

Hình 5 1 Form nhập thông tin hệ thống 89

Hình 5 2 Form nhập cấu hình người dùng 89

Hình 5 3 Form nhập thông tin phòng ban 90

Hình 5 4 Form nhập thông tin nhân viên 90

Hình 5 5 Form nhập thông tin thẻ RFID 91

Hình 5 6 Form báo cáo theo ngày 91

Hình 5 7 Form báo cáo theo tháng 92

Hình 5 8 Form báo cáo chi tiết 92

Trang 9

Chương 1 Mở đầu 1.1 Giới thiệu

Trong khoảng thời gian 10 năm trở lại đây, thế giới xung quanh chúng ta

đang thay đổi từng giây, từng phút dựa trên sự phát triển không ngừng của các ngành khoa học kĩ thuật hiện đại Trong bối cảnh đó, việc kết hợp thành tựu công nghệ điện tử và công nghệ thông tin phục vụ nhu cầu cuộc sống của con người không chỉ ngày càng trở thành một vấn đề hết sức thiết thực mà còn trở thành một bài toán không nhỏ đặt ra đối với nhiều quốc gia phát triển và đang phát triển trên toàn thế giới Một trong những ứng dụng minh chứng cho sự kết hợp hoàn hảo giữa công nghệ điện tử viễn thông và công nghệ thông tin, cũng như sự phát triển khoa học kĩ thuật Đó là sự tích hợp và thiết kế các module nhằm đáp ứng những mục đích chuyên dụng bằng các công nghệ nhúng, bắt đầu từ chip vi xử lý 8 bít cho đến vi xử lý 32 bít

Với mục đích làm chủ công nghệ 32 bít, đó là một trong những công nghệ thịnh hành hiện nay về công nghệ nhúng Sức mạnh của chíp 32 là có thể làm được nhiều thứ với tốc độ cao như là các máy tính trong công nghiệp, hay là các thiết bị điện thoại IP, cũng như server… để thay thế máy tính PC to công cành không cần thiết

Xuất phát từ suy nghĩ là tại sao không thay thế một người chấm công cho các nhân viên trong một công ty, một doanh nghiệp, bởi một cái thiết bị điện

tử hoàn toàn có thể lưu thời gian của nhân viên một cách tự động và khách quan, thay vì một người ngồi phải cầm bút chấm công cho nhân viên giờ đi giờ về để từ đó có thể đưa ra một cái thống kê tổng kết về kết quả làm việc của nhân viên và có một chế độ khen thưởng chính đáng Mà từ đó em đã nghĩ ra

ý tưởng làm thiết bị chấm công bằng thẻ từ RFID bằng công nghệ công nghệ

Trang 10

Thiết bị chấm công là sự kết hợp hài hòa giữa thiết bị điện tử và máy tính nhằm mang lại tính năng hoàn hảo cho người sử dụng Thiết kế và xây dựng

một thiết bị điện tử công nghệ cao như thiết bị chấm công bằng thẻ từ RFID

sử dụng công nghệ 32 bít tại Việt Nam – một đất nước còn đang phát triển và

có nền khoa học kĩ thuật đi sau các nước phát triển hàng chục năm là một bài toán không thể giải quyết trong một sớm một chiều

Tuy nhiên trong đời sống thực tế của các công ty, các doanh nghiệp có rất nhiều nhu cầu thiết thực đó là quản lý nhân sự trong công ty, theo dõi giờ giấc thông qua quẹt thẻ của nhân viên với một số chức năng cấp thiết cần thiết với môi trường Việt Nam và đáp ứng túi tiền của người tiêu dùng với tiêu chí

rẽ bền và hỗ trợ đắc lực cho nhà quản lý nhân sự Vì vậy, với mong muốn sử dụng tổng hợp các kiến thức đã học tạo ra một sản phẩm ứng dụng rộng rãi

đáp ứng nhu cầu thực tế

1.2 Phạm vi đề tài

Đề tài là thiết kế thiết bị điện tử ứng dụng vào công tác quản lý chấm công nhân viên Nhằm hổ trợ cho người quản lý nhân sự một cách dễ dàng về công tác giờ giấc của nhân viên của công ty

Mục đích của đề tài là hiểu biết công nghệ nhúng và tạo một thiết bị chấm công bằng thẻ từ với các chức năng chính:

o Lưu trữ các sự kiện quẹt thẻ bao gồm: thông tin về Id thẻ và thời gian quẹt thẻ

o Bộ nhớ trong có thể lưu trữ các bản ghi thẻ qua bộ nhớ trong hoặc bộ nhớ Flash (USB)

o Điều khiễn thiết bị thông qua máy tính bằng phần mềm trên máy tính và kết nối điều khiễn thông qua giao thức TCP/IP

o Điều khiển thiết bị thông qua giao diện web

Trang 11

o Có thể gửi báo cáo thông qua Email đến nhà quản lý

Mô hình thiết kế thiết bị chấm công:

o Tags : là một loại thẻ RFID sử dụng tần số 125 Khz

o RFID MODULE: là một modun để nhận Id của thẻ RFID thông qua anten và hệ thống mạch điều chế và giải mã sử dụng sóng mang 125 Khz

o CPU 8 bít là một chíp Psoc CY8Y29466 để giải mã Id của thẻ RFID và gửi thông tin thẻ vào bộ xử lý 32 bít, và hiển thị thông tin thẻ lên màn hình LCD 16x02

o CPU 32 bit là một board mạch chính dùng để lưu thông tin sự kiện quẹt thẻ và thực hiện các chứng năng chính như truyền file lên Server, gửi mail …

o TFTP server là một server để nhận file sự kiện quẹt thẻ từ CPU 32 bít

Trang 12

Hình 1 1 Sơ đồ tổng quan hệ thống

Trang 13

Chương 2 Cơ sở lý thuyết về hệ thống 2.1 Hệ thống nhúng

2.1.1 Định nghĩa hệ thống nhúng

Hệ thống nhúng (tiếng Anh: Embedded system) là một thuật ngữ để chỉ một hệ thống có khả năng tự trị được nhúng vào trong một môi trường hay một hệ thống mẹ Hệ thống nhúng có vai trò đảm nhận một phần công việc cụ thể của hệ thống mẹ Hệ thống nhúng có thể là một hệ thống phần cứng và cũng có thể là một hệ thống phần mềm

Hệ thống nhúng thường được thiết kế để thực hiện một chức năng chuyên biệt nào đó Khác với các máy tính đa chức năng, chẳng hạn như máy tính cá nhân, một hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng nhất

định, thường đi kèm với những yêu cầu cụ thể và bao gồm một số thiết bị máy móc và phần cứng chuyên dụng mà ta không tìm thấy trong một máy tính đa năng nói chung Vì hệ thống chỉ được xây dựng cho một số nhiệm vụ nhất

định nên các nhà thiết kế có thể tối ưu hóa nó nhằm giảm thiểu kích thước và chi phí sản xuất Các hệ thống nhúng thường được sản xuất hàng loạt với số lượng lớn Hệ thống nhúng rất đa dạng, phong phú về chủng loại Đó có thể là những thiết bị cầm tay nhỏ gọn như đồng hồ kĩ thuật số và máy chơi nhạc MP3, hoặc những sản phẩm lớn như đèn giao thông, bộ kiểm soát trong nhà máy hoặc hệ thống kiểm soát các máy năng lượng hạt nhân Xét về độ phức tạp, hệ thống nhúng có thể rất đơn giản với một vi điều khiển hoặc rất phức tạp với nhiều đơn vị, các thiết bị ngoại vi và mạng lưới được nằm gọn trong một lớp vỏ máy lớn

Các thiết bị PDA hoặc máy tính cầm tay cũng có một số đặc điểm tương

Trang 14

thiết bị đa năng, cho phép sử dụng nhiều ứng dụng và kết nối đến nhiều thiết

bị ngoại vi

2.1.2 Lịch sử hệ thống nhúng

Hệ thống nhúng đầu tiên là Apollo Guidance Computer (Máy tính Dẫn

đường Apollo) được phát triển bởi Charles Stark Draper tại phòng thí nghiệm của trường đại học MIT Hệ thống nhúng được sản xuất hàng loạt đầu tiên là máy hướng dẫn cho tên lửa quân sự vào năm 1961 Nó là máy hướng dẫn Autonetics D-17, được xây dựng sử dụng những bóng bán dẫn và một đĩa cứng để duy trì bộ nhớ Khi Minuteman II được đưa vào sản xuất năm 1996, D-17 đã được thay thế với một máy tính mới sử dụng mạch tích hợp Tính năng thiết kế chủ yếu của máy tính Minuteman là nó đưa ra thuật toán có thể lập trình lại sau đó để làm cho tên lửa chính xác hơn, và máy tính có thể kiểm tra tên lửa, giảm trọng lượng của cáp điện và đầu nối điện

Từ những ứng dụng đầu tiên vào những năm 1960, các hệ thống nhúng đã giảm giá và phát triển mạnh mẽ về khả năng xử lý Bộ vi xử lý đầu tiên hướng

đến người tiêu dùng là Intel 4004, được phát minh phục vụ máy tính điện tử và những hệ thống nhỏ khác Tuy nhiên nó vẫn cần các chip nhớ ngoài và những

hỗ trợ khác Vào những năm cuối 1970, những bộ xử lý 8 bit đã được sản xuất, nhưng nhìn chung chúng vẫn cần đến những chip nhớ bên ngoài

Vào giữa thập niên 80, kỹ thuật mạch tích hợp đã đạt trình độ cao dẫn

đến nhiều thành phần có thể đưa vào một chip xử lý Các bộ vi xử lý được gọi

là các vi điều khiển và được chấp nhận rộng rãi Với giá cả thấp, các vi điều khiển đã trở nên rất hấp dẫn để xây dựng các hệ thống chuyên dụng Đã có một sự bùng nổ về số lượng các hệ thống nhúng trong tất cả các lĩnh vực thị trường và số các nhà đầu tư sản xuất theo hướng này Ví dụ, rất nhiều chip xử

lý đặc biệt xuất hiện với nhiều giao diện lập trình hơn là kiểu song song truyền thống để kết nối các vi xử lý Vào cuối những năm 80, các hệ thống nhúng đã

Trang 15

trở nên phổ biến trong hầu hết các thiết bị điện tử và khuynh hướng này vẫn còn tiếp tục cho đến nay

Cho đến nay, khái niệm hệ thống nhúng được nhiều người chấp nhận nhất là: hệ thống thực hiện một số chức năng đặc biệt có sử dụng vi xử lý

Không có hệ thống nhúng nào chỉ có phần mềm

2.1.3 Đặc điểm hệ thống nhúng

Các hệ thống nhúng được thiết kế để thực hiện một số nhiệm vụ chuyên dụng chứ không phải đóng vai trò là các hệ thống máy tính đa chức năng Một

số hệ thống đòi hỏi ràng buộc về tính hoạt động thời gian thực để đảm bảo độ

an toàn và tính ứng dụng; một số hệ thống không đòi hỏi hoặc ràng buộc chặt chẽ, cho phép đơn giản hóa hệ thống phần cứng để giảm thiểu chi phí sản xuất

Một hệ thống nhúng thường không phải là một khối riêng biệt mà là một

hệ thống phức tạp nằm trong thiết bị mà nó điều khiển

Phần mềm được viết cho các hệ thống nhúng được gọi là firmware và

được lưu trữ trong các chip bộ nhớ chỉ đọc (read-only memory) hoặc bộ nhớ flash chứ không phải là trong một ổ đĩa Phần mềm thường chạy với số tài nguyên phần cứng hạn chế: không có bàn phím, màn hình hoặc có nhưng với kích thước nhỏ, bộ nhớ hạn chế Sau đây, ta sẽ đi sâu, xem xét cụ thể đặc điểm

của các thành phần của hệ thống nhúng

2.1.3.1 Giao diện

Các hệ thống nhúng có thể không có giao diện (đối với những hệ thống đơn nhiệm) hoặc có đầy đủ giao diện giao tiếp với người dùng tương tự như các hệ điều hành trong các thiết bị để bàn Đối với các hệ thống đơn giản,

Trang 16

Còn trong một hệ thống phức tạp hơn, một màn hình đồ họa, cảm ứng hoặc có các nút bấm ở lề màn hình cho phép thực hiện các thao tác phức tạp

mà tối thiểu hóa được khoảng không gian cần sử dụng; ý nghĩa của các nút bấm có thể thay đổi theo màn hình và các lựa chọn Các hệ thống nhúng thường có một màn hình với một nút bấm dạng cần điểu khiển (joystick button) Sự phát triển mạnh mẽ của mạng toàn cầu đã mang đến cho những nhà thiết kế hệ nhúng một lựa chọn mới là sử dụng một giao diện web thông qua việc kết nối mạng Điều này có thể giúp tránh được chi phí cho những màn hình phức tạp nhưng đồng thời vẫn cung cấp khả năng hiển thị và nhập liệu phức tạp khi cần đến, thông qua một máy tính khác Điều này là hết sức hữu dụng đối với các thiết bị điều khiển từ xa, cài đặt vĩnh viễn Ví dụ, các

router là các thiết bị đã ứng dụng tiện ích này

2.1.3.2 Kiến trúc CPU

Các bộ xử lý trong hệ thống nhúng có thể được chia thành hai loại: vi

xử lý và vi điều khiển Các vi điều khiển thường có các thiết bị ngoại vi được tích hợp trên chip nhằm giảm kích thước của hệ thống Có rất nhiều loại kiến trúc CPU được sử dụng trong thiết kế hệ nhúng như ARM, MIPS, Coldfire/68k, PowerPC, x86, PIC, 8051, Atmel AVR, Renesas H8, SH, V850, FR-V, M32R, Z80, Z8 … Điều này trái ngược với các loại máy tính để bàn, thường bị hạn chế với một vài kiến trúc máy tính nhất định Các hệ thống nhúng có kích thước nhỏ và được thiết kế để hoạt động trong môi trường công nghiệp thường lựa chọn PC/104 và PC/104++ làm nền tảng Những hệ thống này thường sử dụng DOS, Linux, NetBSD hoặc các hệ điều hành nhúng thời gian thực như QNX hay VxWorks Còn các hệ thống nhúng có kích thước rất lớn thường sử dụng một cấu hình thông dụng là hệ thống on chip (System on a chip – SoC), một bảng mạch tích hợp cho một ứng dụng cụ thể (an application-specific integrated circuit – ASIC) Sau đó nhân CPU được mua và thêm vào như một phần của thiết kế chip Một chiến lược tương tự là sử dụng

Trang 17

FPGA (field-programmable gate array) và lập trình cho nó với những thành

phần nguyên lý thiết kế bao gồm cả CPU

o Universal Serial Bus (USB)

o Networks: Controller Area Network,

o Bộ định thời: PLL(s), Capture/Compare và Time Processing

o Bộ gỡ rối mạch hoặc các chương trình mô phỏng (emulator)

o Tiện ích để thêm các giá trị checksum hoặc CRC vào chương

Trang 18

o Đối với các hệ thống xử lý tín hiệu số, người phát triển hệ thống

có thể sử dụng phần mềm workbench như MathCad hoặc

Mathematica để mô phỏng các phép toán

o Các trình biên dịch và trình liên kết (linker) chuyên dụng được

sử dụng để tối ưu hóa một thiết bị phần cứng

o Một hệ thống nhúng có thể có ngôn ngữ lập trình và công cụ thiết kế riêng của nó hoặc sử dụng và cải tiến từ một ngôn ngữ

đã có sẵn

Các công cụ phần mềm có thể được tạo ra bởi các công ty phần mềm chuyên dụng về hệ thống nhúng hoặc chuyển đổi từ các công cụ phát triển phần mềm GNU Đôi khi, các công cụ phát triển dành cho máy tính cá nhân cũng được sử dụng nếu bộ xử lý của hệ thống nhúng đó gần giống với bộ xử lý của một máy PC thông dụng

2.1.3.5 Độ tin cậy

Các hệ thống nhúng thường nằm trong các cỗ máy được kỳ vọng là sẽ chạy hàng năm trời liên tục mà không bị lỗi hoặc có thể khôi phục hệ thống khi gặp lỗi Vì thế, các phần mềm hệ thống nhúng được phát triển và kiểm thử một cách cẩn thận hơn là phần mềm cho máy tính cá nhân Ngoài ra, các thiết

bị rời không đáng tin cậy như ổ đĩa, công tắc hoặc nút bấm thường bị hạn chế

sử dụng Việc khôi phục hệ thống khi gặp lỗi có thể được thực hiện bằng cách

sử dụng các kỹ thuật như watchdog timer – nếu phần mềm không đều đặn nhận được các tín hiệu watchdog định kì thì hệ thống sẽ bị khởi động lại

Một số vấn đề cụ thể về độ tin cậy như:

o Hệ thống không thể ngừng để sửa chữa một cách an toàn, ví dụ như ở các hệ thống không gian, hệ thống dây cáp dưới đáy biển, các đèn hiệu dẫn đường,… Giải pháp đưa ra là chuyển sang sử

Trang 19

dụng các hệ thống con dự trữ hoặc các phần mềm cung cấp một

phần chức năng

o Hệ thống phải được chạy liên tục vì tính an toàn, ví dụ như các thiết bị dẫn đường máy bay, thiết bị kiểm soát độ an toàn trong các nhà máy hóa chất,… Giải pháp đưa ra là lựa chọn backup

2.1.4.2 Hệ thống ngắt điều khiển

Các hệ thống nhúng thường được điểu khiển bằng các ngắt Có nghĩa

là các tác vụ của hệ thống nhúng được kích hoạt bởi các loại sự kiện khác nhau Ví dụ, một ngắt có thể được sinh ra bởi một bộ định thời sau một chu kỳ

được định nghĩa trước, hoặc bởi sự kiện khi cổng nối tiếp nhận được một byte nào đó

Loại kiến trúc này thường được sử dụng trong các hệ thống có bộ

Trang 20

phức tạp hơn sẽ được thêm vào một cấu trúc hàng đợi trong bộ quản lý ngắt để

được vòng lặp xử lý sau đó Lúc này, hệ thống gần giống với kiểu nhân đa nhiệm với các tiến trình rời rạc

2.1.4.3 Hệ thống đa nhiệm

Một hệ thống đa nhiệm không ưu tiên cũng gần giống với kỹ thuật vòng lặp kiểm soát đơn giản ngoại trừ việc vòng lặp này được ẩn giấu thông qua một giao diện lập trình API Các nhà lập trình định nghĩa một loạt các nhiệm vụ, mỗi nhiệm vụ chạy trong một môi trường riêng của nó Khi không cần thực hiện nhiệm vụ đó thì nó gọi đến các tiến trình con tạm nghỉ (bằng cách gọi “pause”, “wait”, “yeild” …)

Ưu điểm và nhược điểm của loại kiến trúc này cũng giống với kiểm vòng lặp kiểm soát đơn giản Tuy nhiên, việc thêm một phần mềm mới được thực hiện dễ dàng hơn bằng cách lập trình một tác vụ mới hoặc thêm vào hàng

đợi thông dịch (queue-interpreter)

2.1.4.4 Hệ thống đa nhiệm ưu tiên

ở loại kiến trúc này, hệ thống thường có một đoạn mã ở mức thấp thực hiện việc chuyển đổi giữa các tác vụ khác nhau thông qua một bộ định thời

Đoạn mã này thường nằm ở mức mà hệ thống được coi là có một hệ điều hành

và vì thế cũng gặp phải tất cả những phức tạp trong việc quản lý đa nhiệm

Bất kỳ tác vụ nào có thể phá hủy dữ liệu của một tác vụ khác đều cần phải được tách biệt một cách chính xác Việc truy cập tới các dữ liệu chia sẻ

có thể được quản lý bằng một số kỹ thuật đồng bộ hóa như hàng đợi thông

điệp (message queues), semaphores … Vì những phức tạp nói trên nên một giải pháp thường được đưa ra đó là sử dụng một hệ điều hành thời gian thực Lúc đó, các nhà lập trình có thể tập trung vào việc phát triển các chức năng của thiết bị chứ không cần quan tâm đến các dịch vụ của hệ điều hành nữa

Trang 21

CE Mặc dù chi phí phần cứng tăng lên nhưng loại hệ thống nhúng này đang tăng trưởng rất mạnh, đặc biệt là trong các thiết bị nhúng mạnh như Wireless router hoặc hệ thống định vị GPS Lý do của điều này là:

o Hệ thống này có cổng để kết nối đến các chip nhúng thông dụng

o Hệ thống cho phép sử dụng lại các đoạn mã sẵn có phổ biến như các trình điều khiển thiết bị, Web Servers, Firewalls, …

o Việc phát triển hệ thống có thể được tiến hành với một tập nhiều loại đặc tính, chức năng còn sau đó lúc phân phối sản phẩm, hệ thống có thể được cấu hình để loại bỏ một số chức năng không cần thiết Điều này giúp tiết kiệm được những vùng nhớ mà các chức năng đó chiếm giữ

o Hệ thống có chế độ người dùng để dễ dàng chạy các ứng dụng

và gỡ rối Nhờ đó, qui trình phát triển được thực hiện dễ dàng hơn và việc lập trình có tính linh động hơn

o Có nhiều hệ thống nhúng thiếu các yêu cầu chặt chẽ về tính thời gian thực của hệ thống quản lý Còn một hệ thống như

Embedded Linux có tốc độ đủ nhanh để trả lời cho nhiều ứng

Trang 22

2.2 Chuẩn truyền dẫn thông tin trong hệ thống

2.2.1 Chuẩn 2 dây (I2C)

2.2.1.1 Giới thiệu chung vể I2C

Ngày nay trong các hệ thống điện tử hiện đại, rất nhiều ICs hay thiết bị ngoại vi cần phải giao tiếp với các ICs hay thiết bị khác - giao tiếp với thế giới bên ngoài Với mục tiêu đạt được hiệu quả cho phần cứng tốt nhất với mạch

điện đơn giản, Phillips đã phát triển một chuẩn giao tiếp nối tiếp 2 dây được gọi là I2C I2C là tên viết tắt của cụm từ Inter - Intergrated Circuit - Bus giao tiếp giữa các IC với nhau I2C mặc dù được phát triển bới Philips, nhưng nó đã

được rất nhiều nhà sản xuất IC trên thế giới sử dụng I2C trở thành một chuẩn công nghiệp cho các giao tiếp điều khiển, có thể kể ra đây một vài tên tuổi ngoài Philips như: Texas Intrument (TI), Maxim - Dallas, analog Device, National Semiconductor… Bus I2C được sử dụng làm bus giao tiếp ngoại vi cho rất nhiều loại IC khác nhau như các loại Vi điều khiển 8051, PIC, AVR, ARM, chíp nhớ như RAM tĩnh (Static Ram), EEPROM, bộ chuyển đổi tương

tự số (ADC), số tương tự (DAC), IC điểu khiển LCD, LED …

Hình 2 1 Bus I2C và thiết bị ngoại vi

2.2.1.2 Đặc điểm I2C

Trang 23

Một giao tiếp I2C gồm có 2 dây: Serial Data (SDA) và Serial Clock (SCL) SDA là đường truyền dữ liệu 2 hướng, còn SCL là đường truyền xung

đồng hồ và chỉ theo một hướng Như hình vẽ trên, khi một thiết bị ngoại vi kết nối vào đường I2C thì chân SDA của nó sẽ nối với dây SDA của bus, chân SCL sẽ nối với dây SCL

Mỗi dây SDA hay SCL đều được nối với điện áp dương của nguồn cấp thông qua một điện trở kéo lên (pull-up resistor) Sự cần thiết của các điện trở kéo này là vì chân giao tiếp I2C của các thiết bị ngoại vi thường là dạng cực máng hở (open-drain or open-collector) Giá trị của các điện trở này khác nhau tùy vào từng thiết bị và chuẩn giao tiếp, thường dao động trong khoảng 1K đến 4.7K

Trở lại với hình 1.1, ta thấy có rất nhiều thiết bị (ICs) cùng được kết nối vào một bus I2C, tuy nhiên sẽ không xảy ra chuyện nhầm lẫn giữa các thiết bị, bởi mỗi thiết bị sẽ được nhận ra bởi một địa chỉ duy nhất với một quan hệ chủ/tớ tồn tại trong suốt thời gian kết nối Mỗi thiết bị có thể hoạt đông như là thiết bị nhận dữ liệu hay có thể vừa truyền vừa nhận Hoạt động truyền hay nhận còn tùy thuộc vào việc thiết bị đó là chủ (master) hay tớ (slave)

Một thiết bị hay một IC khi kết nối với bus I2C, ngoài một địa chỉ (duy nhất) để phân biệt, nó còn được cấu hình là thiết bị chủ (master) hay tớ (slave) Tại sao lại có sự phân biệt này ? Đó là vì trên một bus I2C thì quyền

điều khiển thuộc về thiết bị chủ (master) Thiết bị chủ nắm vai trò tạo xung

đồng hồ cho toàn hệ thống, khi giữa hai thiết bị chủ/tớ giao tiếp thì thiết bị chủ có nhiệm vụ tạo xung đồng hồ và quản lý địa chỉ của thiết bị tớ trong suốt quá trình giao tiếp Thiết bị chủ giữ vai trò chủ động, còn thiết bị tớ giữ vai trò

bị động trong viêc giao tiếp

Trang 24

Hình 2 2 Kết nối thiết bị vào bus I2C Trên Bus I2C, bus dữ liệu (SDA) được truyền theo hai chiều từ máy chủ

đến máy trạm hoặc từ máy trạm đến máy chủ Còn bus xung đồng hồ (SCL) chi có một hướng từ máy chủ đến máy trạm

Hình 2 3 Truyền nhận dữ liệu giữa Chủ/Tớ

Về dữ liệu truyền trên bus I2C, một bus I2C chuẩn truyền 8 - bit dữ liệu

có hướng trên đường truyền với tốc độ là 100Kbits/s - Chế độ chuẩn (Standard mode) Tốc độ truyền có thể lên tới 400Kbits/s - Chế độ nhanh (Fast mode) và cao nhất là 3,4Mbits/s - Chế độ cao tốc (High - speed mode)

Trang 25

Một bus I2C có thể hoạt động ở nhiều chế độ khác nhau:

o Một chủ một tớ (one master – one slave)

o Một chủ nhiều tớ (one master – multi slave)

o Nhiều chủ nhiều tớ (Multi master – multi slave)

Dù ở chế độ nào, một giao tiếp I2C đều dựa vào quan hệ chủ/tớ Giả thiết một thiết bị A muốn gửi dữ liệu đến thiết bị B, quá trình được thực hiện như sau:

o Thiết bị A (Chủ) xác định đúng địa chỉ của thiết bị B (tớ), cùng với việc xác định địa chỉ, thiết bị A sẽ quyết định việc đọc hay ghi vào thiết bị tớ

o Thiết bị A gửi dữ liệu tới thiết bị B

o Thiết bị A kết thúc quá trình truyền dữ liệu

Khi A muốn nhận dữ liệu từ B, quá trình diễn ra như trên, chỉ khác là A

sẽ nhận dữ liệu từ B Trong giao tiếp này, A là chủ còn B vẫn là tớ Chi tiết việc thiết lập một giao tiếp giữa hai thiết bị sẽ được mô tả chi tiết trong các mục dưới đây

2.2.1.3 Điều kiện START và STOP

START và STOP là những điều kiện bắt buộc phải có khi một thiết bị chủ muốn thiết lập giao tiếp với một thiết bị nào đó trong mạng I2C START

là điều kiện khởi đầu, báo hiệu bắt đầu của giao tiếp, còn STOP báo hiệu kết thúc một giao tiếp Hình dưới đây mô tả điều kiện START và STOP

Ban đầu khi chưa thực hiện quá trình giao tiếp, cả hai đường SDA và SCL đều ở mức cao (SDA = SCL = HIGH) Lúc này bus I2C được coi là rỗi (“bus free”), sẵn sàng cho một giao tiếp Hai điều kiện START và STOP là không thể thiếu trong việc giao tiếp giữa các thiết bị I2C với nhau

Trang 26

Điều kiện

Hình 2 4 Điều kiện START và STOP của Bus I2C

Điều kiện START: một sự chuyển đổi trạng thái từ cao xuống thấp trên

đường SDA trong khi đường SCL đang ở mức cao (cao = 1; thấp = 0) báo hiệu một điều kiện START

Điều kiện STOP: Một sự chuyển đổi trạng thái từ mức thấp lên cao trên

đường SDA trong khi đường SCL đang ở mức cao

Cả hai điều kiện START và STOP đều được tạo ra bởi thiết bị chủ Sau tín hiệu START, bus I2C coi như đang trong trang thái làm việc (busy) Bus I2C sẽ rỗi, sẵn sàng cho một giao tiếp mới sau tín hiệu STOP từ phía thiết bị chủ

Sau khi có một điều kiện START, trong qua trình giao tiếp, khi có một tín hiệu START được lặp lại thay vì một tín hiệu STOP thì bus I2C vẫn tiếp tục trong trạng thái bận Tín hiệu START và lặp lại START đều có chức năng giống nhau là khởi tạo một giao tiếp

2.2.1.4 Định dạng dữ liệu truyền

Dữ liệu được truyền trên bus I2C theo từng bit, bit dữ liệu được truyền

đi tại mỗi sườn dương của xung đồng hồ trên dây SCL, quá trình thay đổi bit dữ liệu xảy ra khi SCL đang ở mức thấp

Trang 27

Hình 2 5 Quá trình truyền 1 bit dữ liệu

Mỗi byte dữ liệu đ−ợc truyền có độ dài là 8 bits Số l−ợng byte có thể truyền trong một lần là không hạn chế Mỗi byte đ−ợc truyền đi theo sau là một bit ACK để báo hiệu đã nhận dữ liệu Bit có trọng số cao nhất (MSB) sẽ đ−ợc truyền đi đầu tiên, các bít sẽ đ−ợc truyền đi lần l−ợt Sau 8 xung clock trên dây SCL, 8 bit dữ liệu đã đ−ợc truyền đi Lúc này thiết bị nhận, sau khi đã nhận đủ 8 bít dữ liệu sẽ kéo SDA xuống mức thấp tạo một xung ACK ứng với xung clock thứ 9 trên dây SDA để báo hiệu đã nhận đủ 8 bit Thiết bị truyền khi nhận đ−ợc bit ACK sẽ tiếp tục thực hiện quá trình truyền hoặc kết thúc Một byte truyền đi có kèm theo bit ACK là điều kiên bắt buộc, nhằm đảm bảo cho quá trình truyền nhận đ−ợc diễn ra chính xác Khi không nhận đ−ợc

đúng địa chỉ hay khi muốn kết thúc quá trình giao tiếp, thiết bị nhận sẽ gửi một xung Not-ACK (SDA ở mức cao) để báo cho thiết bị chủ biết, thiết bị chủ

sẽ tạo xung STOP để kết thúc hay lặp lại một xung START để bắt đầu quá trình mới

2.2.1.5 Định dạng địa chỉ thiết bị

Mỗi thiết bị ngoại vi tham gia vào bus i2c đều có một địa chỉ duy nhất, nhằm

Trang 28

muốn giao tiếp với ngoại vi nào trên bus I2C, nó sẽ gửi 7 bit địa chỉ của thiết

bị đó ra bus ngay sau xung START Byte đầu tiên được gửi sẽ bao gồm 7 bit

địa chỉ và một bít thứ 8 điều khiển hướng truyền

Hình 2 6 Quá trình truyền byte dữ liệu đầu tiên Mỗi một thiết bị ngoại vi sẽ có một địa chỉ riêng do nhà sản xuất ra nó quy

định Địa chỉ đó có thể là cố định hay thay đổi Riêng bit điều khiển hướng sẽ quy định chiều truyền dữ liệu Nếu bit này bằng “0” có nghĩa là byte dữ liệu tiếp theo sau sẽ được truyền từ chủ đến tớ, còn ngược lại nếu bằng “1” thì các byte theo sau byte đầu tiên sẽ là dữ liệu từ con tớ gửi đến con chủ Việc thiết lập giá trị cho bit này do con chủ thi hành, con tớ sẽ tùy theo giá trị đó mà có

sự phản hồi tương ứng đến con chủ

2.2.1.6 Truyền dữ liệu trên bus I2C, chế độ Master-Slave

Việc truyền dữ liệu diễn ra giữa con chủ và con tớ Dữ liệu truyền có thể theo

2 hướng, từ chủ đến tớ hay ngược lại Hướng truyền được quy định bởi bit thứ

8 trong byte đầu tiên được truyền đi

Hình 2 7 Quá trình truyền dữ liệu Truyền dữ liệu từ chủ đến tớ (ghi dữ liệu): Thiết bị chủ khi muốn ghi dữ liệu

Trang 29

đến tớ, quá trình thực hiện là:

o Thiết bị chủ tạo xung START

o bị chủ gửi địa chỉ của thiết bị tớ mà nó cần giao tiếp cùng với bit =

0 ra bus và đợi xung ACK phản hồi từ con tớ

o Khi nhận đ−ợc xung ACK báo đã nhận diện đúng thiết bị tớ, con chủ bắt đầu gửi dữ liệu đến con tớ theo từng byte một Theo sau mỗi byte này đều là một xung ACK Số l−ợng byte truyền là không hạn chế

o Kết thúc quá trình truyền, con chủ sau khi truyền byte cuối sẽ tạo xung STOP báo hiệu kết thúc

Hình 2 8 Ghi dữ liệu từ chủ đến tớ Truyền dữ liệu từ tớ đến chủ (đọc dữ liệu): Thiết bị chủ muốn đọc dữ liệu từ thiết bị tớ, quá trình thực hiện nh− sau:

o Khi bus rỗi, thiết bị chủ tạo xung START, báo hiệu bắt đầu giao tiếp Thiết bị chủ gửi địa chỉ của thiết bị tớ cần giao tiếp cùng với bit =

1 và đợi xung ACK từ phía thiết bị tớ

o Sau xung ACK dầu tiên, thiết bị tớ sẽ gửi từng byte ra bus, thiết bị chủ sẽ nhận dữ liệu và trả về xung ACK Số l−ợng byte không hạn

Trang 30

o muốn kết thúc quá trình giao tiếp, thiết bị chủ gửi xung Not#ACK và tạo ra xung STOP để kết thúc

Hình 2 9 Quá trình đọc dữ liệu từ thiết bị tớ Quá trình kết hợp ghi và đọc dữ liệu: giữa hai xung START và STOP, thiết bị chủ có thể thực hiện việc đọc hay ghi nhiều lần, với một hay nhiều thiết bị Để thực hiện việc đó, sau một quá trình ghi hay đọc, thiết bị chủ lặp lại một xung START và lại gửi lại địa chỉ của thiết bị tớ và bắt đầu một quá trình mới

Trang 31

o Trong đó trường bít Start luôn là một bít có giá trị bằng 0 để báo hiệu bắt đầu một khung

o Trường bít dữ liệu có thể là 5,6,7, hoặc 8 bít tuỳ theo yêu cầu trong các ứng dụng cụ thể tuỳ người dùng thiết lập

o Trường bít Parity là một bít được thêm vào có giá trị tuỳ thuộc vào giá trị của các bít trong trường dữ liệu Nó có hai dạng là chẵn hay lẻ Nếu parity là chẵn thì giá trị của trường parity được thêm vào sao cho số bít

1 trong khung luôn là chẵn Nếu là lẻ thì giá trị của trường này sẽ được thêm vào sao cho số bít 1 trong khung luôn là lẻ

o Trường Stop bít có từ 1, 1.5 đến 2 bít và luôn có giá trị bằng 1để báo hiệu đã kết thúc khung truyền

Tiêu chuẩn RS232C cũng đưa ra các tốc độ bít chuẩn baud rate Người dùng tùy theo mục đích cụ thể và các điều kiện của đường truyền có thể dùng một trong các tốc độ đã được chuẩn hoá đó : 300 bps, 600bps, 1200 bps, 2400 bps, 4800 bps, 9600 bps, 14400 bps, 19200 bps, 38400 bps, …

Việc điều khiển truyền dữ liệu bao gồm nhiều phương pháp nhưng phương pháp đơn giản nhất là điều khiển không bắt tay (chỉ dùng 3 dây, 1 truyền Tx, 1 nhận Rx, 1đất Gnd)

Trong ứng dụng truyền thông từ VĐK sang máy tính, phương pháp truyền nối tiếp theo chuẩn RS232 là phương pháp tốt nhất bởi những lý do sau:

o Truyền dữ liệu tin cậy

o Thuật toán lập trình đơn giản

o Dễ dàng thiết kế mạch giao tiếp

Trang 32

o Trong máy tính cũng đã có sẵn các hàm hỗ trợ giao tiếp cổng COM (chuẩn RS232)

ví dụ truyền một byte (ký tự ‘a’ ặ 61 (hex)) trên đường truyền RS232:

Start

Stop Bits`Truyền ký tự ‘a’ 61(hex)

Hình 2 11 Ví dụ truyền ký tự ‘a’ trên bus RS232

2.2.3 Mã Manchester

Như chúng ta đã biết khi truyền tín hiệu theo mức thì chúng ta thường gặp phải vấn đề về suy hao thành phần một chiều của tín hiệu do chúng ta chú trọng tới mức của tín hiệu khi truyền để bên thu có thể nhận dạng được các bíts ‘1’, ‘0’ rõ ràng (mà mức tín hiệu phụ thuộc rất nhiều vào suy hao trên

đường truyền do khoảng cách và đặc tính của phương tiện truyền dẫn) Thứ hai là chúng ta cần phải quan tâm tới công suất phát tín hiệu trong những dạng truyền thông tin cần công suất ổn định nhằm tránh nhiễu như những thông tin RF (loại thông tin không cần công suất phát lớn nhưng cần ổn định) trong trường hợp này chúng ta có thể dùng mã Manchester

Mã Manchester: mã hoá các bíts nhị phân ‘0’,’1’ theo các sườn xung của tín hiệu Mức ‘1’ được mã hoá thành tín hiệu chuyển từ mức thấp lên mức cao, trong khi mức ‘0’ thì ngược lại, từ mức cao xuống thấp như hình vẽ sau:

Trang 33

Những ưu điểm nổi bật của Manchester:

o Tách đồng bộ dễ dàng (do mỗi bíts dữ liệu có ít nhất một thời điểm chuyển tiếp)

o Không có những chuỗi bíts ‘0’, ‘1’ dài vô hạn vì chỉ dùng hai trạng thái cho các bít 0ặ01, 1ặ10 (Các trạng thái khác không dùng 00 11)

o Không cần tham chiếu ‘0’ cho tín hiệu

o Đỉnh của mật độ phổ công suất thấp nên công suất truyền tin thấp

o Trong thông tin RF cho điều khiển từ xa, mã này được dùng rất nhiều vì

nó có những đặc điểm phù hợp đặc biệt, mã này có tác dụng tốt cho việc cân bằng và công suất thấp

Trong thông tin điều khiển cao tần RF thì người ta thường quan tâm nhiều tới

Trang 34

nên còn có loại Manchester không có cực tính âm, trong đó thì các sườn tín hiệu sẽ đại diện cho các bíts ‘0’, ‘1’ là các sườn xuống hoặc lên

Hình 2 13 Dạng tín hiệu của mã Manchester

2.3 Điều khiển với màn hình LCD 16x02

2.3.1 Cấu tạo LCD

Trong thực tế có rất nhiều loại LCD có kích cở khác nhau, ở đây ta chỉ đề cập

đến loại LCD 16x02 (2 hàng và 16 ký tự) hình ở dưới

Hình 2 14 Cấu tạo LCD 16x02

Trang 35

2.3.2 Sơ đồ chân

3 Vee - Cấp nguồn điều khiển độ tương phản

4 RS I RS = 0 Chon thanh ghi lờnh, RS = 1 Chọn thanh ghi dữ liệu

5 R/W I R/W = 1 Đọc dữ liệu, R/W = 0 dư liệu

6 EN I/O Chõn cho phộp để chốt dữ liệu

15 A I/O Nguồn của đốn LED

16 K I/O Đất của LED

Chân đọc ghi (R/W): Đầu vào đọc/ghi cho phép người dùng ghi thông tin lên LCD khi R/W = 0 hoặc đọc thông tin từ nó khi R/W = 1

Trang 36

Chân cho phép EN : Chân này dùng để chốt dữ liệu Khi dữ liệu được cấp đến

và đồng thời người dùng điều khiển một xung từ mức cao xuống mức thấp thì dữ liệu được cấp đến LCD Xung này phải có độ rộng tối thiểu là 450 ns Chân DB0- DB7: là 8 chân dữ liệu song song của một byte, được dùng để gửi thông tin lên LCD hoặc đọc nội dung của các thanh ghi trong LCD Để hiển thị các ký tự trong mã ASCII ta chỉ cần gửi mã của các ký tự ra ra 8 chân này tương đương với một byte đồng thời phải đặt chân RS lên mức 1 Ví dụ muốn hiển thị chữ A trên màn hình LCD thì ta gửi ra 8 chân này một byte 0x41 và chân RS lên mức 1 Ngược lại khi điều khiển chân RS xuống mức 0 thì mã lệnh được điều khiển đến các chân này dùng để thực hiện lệnh LCD ví dụ đặt 0x01 lên các chân này và RS = 0 thì LCD sẽ xóa nàm hình và đưa con trỏ về

Trang 37

2.3.4 B¶ng lÖnh cña LCD 16x02

Mã (Hex) Lênh đến thanh ghi LCD 0x01 Xóa màn hình hiển thị và đưa con trỏ về đầu dòng 0x02 Trở về đầu dòng

0x04 Giảm giá trị con trỏ (Dịch con trỏ sang phải) 0x06 Tăng giá trị con trỏ (Dịch con trỏ sang trái) 0x05 Dịch hiển thị sang phải

0x07 Dịch hiển thị sang trái 0x08 Tắt con trỏ và tắt hiển thị 0x0A Tắt hiển thị và bật con trỏ 0x0C Bật hiển thị và tắt con trỏ 0x0F Bật hiển thị và nhấp nháy con trỏ 0x10 Dịch vị trí con trỏ sang trái 0x14 Dịch vị trí con trỏ sang phải 0x18 Dịch toàn bộ hiển thị sang trái 0x1C Dịch toàn bộ hiển thị sang phải 0x80 Đưa con trỏ về đầu dòng thứ nhất 0xC0 Đưa con trỏ về đầu dòng thứ hai 0x38 Khởi tạo LCD ở chế độ hai dòng và ma trận 5x7

B¶ng 2 2 B¶ng lÖnh cña LCD

2.3.5 Qu¸ tr×nh ®iÒu khiÓn víi mµn h×nh LCD 16x02

o M¾c phÇn cøng (chi tiÕt phÇn thiÕt kÕ)

o Khëi t¹o LCD

o G¸n gi¸ trÞ cho c¸c bÝt ®iÒu khiÓn lªn c¸c ch©n RS, R/W, EN cho phï

Trang 38

o Xuất byte dữ liệu thực thi ra bus điều khiển (DB0 ặDB7) của LCD

o Kiểm tra cở bận xem LCD đã sẵn sàng nhận dữ liệu mới hay chưa

o Quay vòng lại bước 3 để thực hiện tiếp

2.4 Cấu tạo thẻ RFID

Thẻ RFID trong luận văn là một loại thẻ được dùng ở tần số sóng là 125 Khz,

là loại thẻ thông minh không tiếp xúc (contactless smartcard) bên trong thẻ có

một Chip điện tử đã được mã hóa với một số nhận diện duy nhất (không thể làm giả) có gắn một ăngten chạy ẩn vòng quanh thân thẻ cho phép giao tiếp

được với Thiết bị chấm công bằng sóng vô tuyến (Radio Frequency Identification - RFID) trong khoảng cách từ 5cm đến 15cm không cần tiếp xúc Nhờ tính năng vượt trội này nên Thẻ thông minh không tiếp xúc có độ bền gấp nhiều lần so với các loại thẻ khác và được ứng dụng vào rất nhiều lĩnh vực của cuộc sống như Kiểm soát an ninh, quản lý nhân sự-chấm công, thu phí cầu đường, CMND …

Cấu tạo:

Hình 2 15 Cấu tạo thẻ RFID 125 Khz Nguyên tắc hoạt động: Đây là loại thẻ RFID không dùng Pin, năng lượng

được nhận từ đầu đọc thẻ Khi năng năng lượng được nạp đủ thỉ thẻ từ phát ra một mã ID được gọi là số thẻ RFID

Số thẻ RFID được định dạng như sau:

Trang 39

Là một dãy số gồm có 5 Byte dạng hệ sơ số 16 là : 01 01 3E B2 8D

Các kiểu chuyển đổi hiển thị số thẻ là:

Hiển thị 13 số cơ số thập phân được chuyển đổi 5 Byte trên ra hệ cơ số thập phân:

01 01 3E B2 8D (Hex) ặ 0004315853453 (Dec)

Hiển thị 10 số hệ cơ số thập phân được chuyển đổi từ 4 byte có trọng số bé nhất: 01 3E B2 8D (Hex) ặ 0020886157 (Dec) đây là kiểu hiển thị trong luận văn

Chia 4 byte có trọng số thấp thành 2 phần sau đó đổi 2 byte đầu tiên ra số thập phân Tiếp theo chuyển đổi 2 byte cuối ra 5 số có dạng thập phân Người ta gọi là cách chuyển đổi WEG24:

01 3E B2 8D ặ 00318,45709 (01 3E ặ00318; B2 8D ặ 45709)

Hiển thị 3 byte có trọng số thấp nhất được chuyển đổi thành số thập phân gồm

8 chử số để hiển thị: 3E B2 8D (Hex) ặ 04108941 (Dec)

2.5 Vi xử lý 8 bít - Psoc

2.5.1 Giới thiệu về Psoc

PSoC là một từ viết tắt của cụm từ tiếng Anh Programmable System on Chip,

nghĩa là hệ thống khả trình trên một chíp Các chíp chế tạo theo công nghệ PSoC cho phép thay đổi được cấu hình bằng cách gán chức năng cho các khối tài nguyên có sẵn trên chíp Hơn nữa nó có thể kết nối tương đối mềm dẻo các khối chức năng với nhau hoặc giữa các khối chức năng với các cổng vào ra Chính vì vậy mà PSoC có thể thay thế cho nhiều chức năng nền cho một hệ thống cơ bản chỉ bằng một chíp đơn Thành phần của chíp PSoC bao gồm các

Trang 40

Để lập trình hệ thống, người sử dụng được cung cấp một phần mềm lập trình,

ví dụ như cho các chíp PSoC của Cypress người lập trình phải có phần mềm PSoC Designer Ngoài ra để cài được chương trình điều khiển vào chíp thì người lập trình phải có một kit phát triển do hãng chế tạo chíp cung cấp (hoặc một bộ nạp) Phần mềm thiết kế được xây dựng trên cơ sở hướng đối tượng với cấu trúc module hoá Mỗi một khối chức năng là một module mềm Việc lập cấu hình cho chíp như thế nào là tuỳ thuộc vào người lập trình thông qua một thư viện chuẩn Người lập trình thiết lập cấu hình trên chíp chỉ đơn giản bằng cách muốn chíp có chức năng gì thì kéo chức năng đó và thả vào khối tài nguyên số hoặc tương tự, hoặc cả hai tuỳ theo chức năng (phương pháp lập trình kéo thả) Với khả năng đặt cấu hình mạnh mẽ này, một thiết bị đo lường

có thể được gói gọn trên một chíp đơn duy nhất Chính vì lý do đó, hãng Cypress MicroSystems đã không gọi sản phẩm của mình là vi điều khiển (àC) như truyền thống, mà gọi là “Thiết Bị PSoC” (PSoc device), và họ hi vọng rằng, với khả năng đặt cấu hình mạnh mẽ, người sử dụng sẽ có được những thiết bị điều khiển, những thiết bị đó có giá rẻ, kích thước nhỏ gọn, và sản phẩm PSoC của họ sẽ thay thế được các thiết bị dựa trên vi xử lý hoặc vi

điều khiển đã có từ trước đến nay

2.5.2 Đặc điểm của Psoc

Các họ PSoC khác nhau sẽ khác nhau về số lượng các khối tài nguyên Trong

phạm vi luận văn này em sử dụng họ PSoC CY8C29x66-24PXI, mà cụ thể là chip CY8C29466 - 24PXI Sau đây là các đặc điểm về công nghệ của họ

Ngày đăng: 22/07/2017, 23:18

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Phạm Văn ất, “Kỹ thuật lập trình C nâng cao”, Nhà xuất bản giáo dục 1998 Sách, tạp chí
Tiêu đề: Kỹ thuật lập trình C nâng cao
Nhà XB: Nhà xuất bản giáo dục 1998
2. Phạm Minh Hà, “Kỹ thuật mạch điện” , Nhà xuất bản khoa học và kỹ thuật 1997 Sách, tạp chí
Tiêu đề: Kỹ thuật mạch điện
Nhà XB: Nhà xuất bản khoa học và kỹ thuật 1997
3. PGS.TS Nguyễn Việt H−ơng, “Bàigiảng môn phân tích và thiết kế hệ thống ” 2004 Sách, tạp chí
Tiêu đề: Bàigiảng môn phân tích và thiết kế hệ thống
4. Nguyễn Hồng Sơn, “Kỹ thuật truyền số liệu”, Nhà xuất bản lao động xã hội 2000 Sách, tạp chí
Tiêu đề: Kỹ thuật truyền số liệu”
Nhà XB: Nhà xuất bản lao động xã hội 2000
5. Nguyễn Quốc Trung “Xử lý tín hiệu và lọc số ”, Nhà xuất bản khoa học và kü thuËt 2001 tËp1 – tËp2 Sách, tạp chí
Tiêu đề: Xử lý tín hiệu và lọc số
Nhà XB: Nhà xuất bản khoa học và kü thuËt 2001 tËp1 – tËp2
6. Nguyễn Thúy Vân, “Kỹ thuật số”, Nhà xuất bản khoa học và kỹ thuật 1997 Sách, tạp chí
Tiêu đề: Kỹ thuật số
Nhà XB: Nhà xuất bản khoa học và kỹ thuật 1997
7. Cát Văn Thành, “Linux toàn tập”, Nhà xuất bản khoa học thống kê 2000 Sách, tạp chí
Tiêu đề: Linux toàn tập
Nhà XB: Nhà xuất bản khoa học thống kê 2000
8. Aptech Worldwide, “Elementary Program with C”, 2004 Aptech Limited 9. Qizheng Gu, “RF System Design of Transceivers for WirelessCommunications”, Springer, 2006 Sách, tạp chí
Tiêu đề: Elementary Program with C"”, 2004 Aptech Limited 9. Qizheng Gu, “"RF System Design of Transceivers for Wireless "Communications”
10. Ronald J.Tocci “Digital System Principles and Applications ”, Prentice hall 1999 Sách, tạp chí
Tiêu đề: Digital System Principles and Applications

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w