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 1bộ giáo dục và đào tạo trường đại học bách khoa hà nội
Trang 2Lờ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 3Lờ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 4Mụ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 52.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 64.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 7Danh 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 8Hì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 9Chươ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 10Thiế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 11o 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 12Hình 1 1 Sơ đồ tổng quan hệ thống
Trang 13Chươ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 14thiế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 15trở 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 16Cò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 17FPGA (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 18o Đố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 19dụ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 20phứ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 21CE 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 222.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 23Mộ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 24Hì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 25Mộ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 27Hì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 28muố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 30o 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 31o 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 32o 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 33Nhữ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 34nê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 352.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 36Châ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 372.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 38o 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 39Là 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ọ