Nghiên cứu thiết kế mặt lặp la bàn chỉ thị số tương thích chuẩn giao tiếp NMEA 0183Nghiên cứu thiết kế mặt lặp la bàn chỉ thị số tương thích chuẩn giao tiếp NMEA 0183Nghiên cứu thiết kế mặt lặp la bàn chỉ thị số tương thích chuẩn giao tiếp NMEA 0183Nghiên cứu thiết kế mặt lặp la bàn chỉ thị số tương thích chuẩn giao tiếp NMEA 0183Nghiên cứu thiết kế mặt lặp la bàn chỉ thị số tương thích chuẩn giao tiếp NMEA 0183
Trang 1LỜI CẢM ƠN
Trong thời gian làm đồ án tốt nghiệp em đã nhận được nhiều sự giúp đỡ ,đóng góp ý kiến và chỉ bảo nhiệt tình của thầy , cô , bạn bè
Em xin trân thành cảm ơn thầy giáo : Ths Nguyễn Đình Thạch đã giới
thiệu, cung cấp tài liệu và tận tình hướng dẫn em hoàn thành đồ án này
Em xin cảm ơn các thầy cô giáo trong trường Đại học Hàng Hải Việt Nam
và các thầy cô trong khoa Điện- Điện tử đã dạy dỗ em trong thời gian học tập tạitrường giúp em có được các cơ sở lý thuyết và đã tạo điều kiện giúp đỡ emtrong quá trình học tập
Cuối cùng em xin cảm ơn gia đình, bạn bè ,đã luôn tạo điều kiện quan tâm,giúp đỡ , động viên em trong suốt quá trình học tập và hoàn thành đồ án tốtnghiệp
Giáo viên hướng dẫn
Trang 2LỜI CAM ĐOAN
Em xin cam đoan đây là đồ án độc lập của riêng em Các thiết kế ,tínhtoán trong đồ án hoàn toàn mang là của em không sao chép ở bất cứ đồ án nàotrước đó
Nếu có bất cứ sự không trung thực nào em xin chịu hoàn toàn tráchnhiệm
Trang 3MỤC LỤC
LỜI CẢM ƠN i
LỜI CAM ĐOAN ii
DANH MỤC HÌNH VẼ v
LỜI MỞ ĐẦU 1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VÀ CÁC CÔNG CỤ CẨN THIẾT ĐỂ THIẾT KẾ MẶT LẶP 2
1.1 GIỚI THIỆU VỀ HỆ THỐNG LA BÀN SỬ DỤNG TRÊN TÀU BIỂN .2 1.2 LA BÀN ĐIỆN ĐỒNG BỘ BẰNG TÍN HIỆU SỐ 2
1.3 CHUẨN TRUYỀN THÔNG NMEA 0183 4
1.3.1 Khái quát chung về chuẩn giao tiếp NMEA 0183 4
1.3.2 Đặc tính điện 5
1.3.3.Cách thức gói tin của NMEA 0183 7
1.3.4 Mã nhận dạng Talker và định dạng tín hiệu la bàn 7
1.3.5 Định dạng tín hiệu la bàn 10
1.4.NGHIÊN CỨU VỀ HỌ VI ĐIỀU KHIỂN AVR 11
1.4.1 Chức năng và đặc điểm 11
1.4.2 Cấu trúc bên trong của AVR 11
1.4.3 Các Port nhập xuất 16
1.4.4 Ngắt và sự kiện 17
1.5 LED 7 THANH VÀ PHƯƠNG PHÁP HIỂN THỊ CỦA LED 7 THANH 21
1.5.1 Khái quát 21
1.5.2 Các thông số của LED 7 thanh 22
Trang 4CHƯƠNG 2: TÍNH TOÁN VÀ THIẾT KẾ PHẦN CỨNG CHO MẶT LẶP LA
BÀN HIỆN THỊ SỐ 23
2.1 XÂY DỰNG CẤU TRÚC SƠ ĐỒ KHỐI CHO MẶT LẶP LA BÀN HIỂN THỊ SỐ 23
2.2 THIẾT KẾ PHẦN CỨNG 24
2.2.1.Thiết kế mạch nguồn 24
2.2.2.Thiết kế khối xử lý trung tâm 26
2.3 KHỐI GIAO TIẾP VỚI NMEA 0183 29
2.4.MẠCH HIỆN THỊ BẰNG LED 7 THANH 30
2.5 MẠCH ĐIỀU KHIỂN ĐỘ SÁNG 31
2.6 SƠ ĐỒ NGUYÊN LÝ CỦA MẶT LẶP 31
CHƯƠNG 3 XÂY DỰNG THUẬT TOÁN ĐIỀU KHIỂN CHO MẶT LẶP LA BÀN HIỆN THỊ SỐ 33
3.1.LƯU ĐỒ THUẬT TOÁN CỦA CHƯƠNG TRÌNH CHÍNH 33
3.2 KHỞI TẠO VÀ KHAI BÁO BIẾN 35
3.3 CHƯƠNG TRÌNH THU TÍN HIỆU LA BÀN 37
3.4 CHƯƠNG TRÌNH XỬ LÝ TÍN HIỆU LA BÀN 39
3.5 CHƯƠNG TRÌNH HIỆN THỊ TÍN HIỆU RA LED 7 THANH 41
3.6 CHƯƠNG TRÌNH ĐIỀU KHIỂN ĐỘ SÁNG DIMMER 42
CHƯƠNG 4 THI CÔNG 46
PHỤ LỤC 53
Trang 5DANH MỤC HÌNH VẼ
1.1 Sơ đồ giao tiếp La bàn – mặt lặp – hệ máy trạm 3
1.3 Cấu trúc khung dữ liệu tín hiệu chuẩn NMEA 0183 51.5 Kết nối giữa một Talker và nhiều Listener 61.6 Sơ đồ cấu trúc bên trong của dòng chip AVR 12
2.1 Sơ đồ khối của mặt lặp la bàn hiển thị số 23
2.3 Sơ đồ nguyên lý khối xử lý trung tâm cơ cấu chỉ báo 26
2.7 Mạch chỉ thị hiện thị bằng LED 7 thanh 30
2.9 Sơ đồ nguyên lý cho mặt lặp la bàn điện 323.1 Lưu đồ thuật toán chính của chương trình 33
3.4 Sơ đồ thuật toán chương trình thu tín hiệu la bàn 37
3.7 Chương trình điều khiển độ sáng Dimmer 43
4.2 Sơ đồ mạch in của mặt lặp la bàn chỉ thị số 47
4.6 Chọn các thông số quan trọng trong quá trình nạp
chương trình
50
Trang 7LỜI MỞ ĐẦU
Từ rất lâu đời la bàn là một thiết bị không thể thiếu đối với tàu bè lưu thôngtrên biển giúp nhận biết góc phương vị mà tàu di chuyển Ngày nay khi các côngnghệ phát triển hệ thống la bàn trang bị trên tàu ngày càng hiện đại Mỗi tàu khi lưuthông trên biển thường được 1 la bàn từ , la bàn con quay hoặc la bàn điện Trong
đó la bàn con quay cho độ chính xác cao hơn hết Tuy nhiên giá thành của la bàncon quay thường rất cao do các yêu cầu chính xác khi gia công các chi tiết cơ khí
và đòi hỏi 1 công nghệ hiện đại mới có thể chế tạo được Mỗi tàu thường chỉ trang
bị 1 la bàn con quay ở vị trí buồng lái chính vậy nên khi muốn quan sát ở gócphương vị tại các vị trí khác trên tàu thì người ta thường chọn phương án là lắp đặt
1 mặt lặp la bàn dùng lặp lại các thông tin trên la bàn chủ
Để tìm hiểu rõ hơn về các hệ thống la bàn cũng như cách thức truyền dữ liệu
từ la bàn chủ trên tàu em đã chọn đề tài " Nghiên cứu thiết kế mặt lặp la bàn chỉ thị số tương thích chuẩn giao tiếp NMEA 0183" Sau thời gian tìm hiểu cùng với
sự hướng dẫn của thầy giáo Ths.Nguyễn Đình Thạch đến nay em đã hoàn thành đồ
án với nội dung gồm 4 chương
Chương 1 : CƠ SỞ LÝ THUYẾT VÀ CÁC CÔNG CỤ CẨN THIẾT ĐỂTHIẾT KẾ MẶT LẶP
Chương 2 :TÍNH TOÁN VÀ THIẾT KẾ PHẦN CỨNG CHO MẶT LẶP LABÀN HIỆN THỊ SỐ
Chương 3 :XÂY DỰNG THUẬT TOÁN ĐIỀU KHIỂN CHO MẶT LẶP
LA BÀN HIỆN THỊ SỐ
Chương 4 :THI CÔNG
Chương 1 sẽ giới thiệu về các công cụ cần để có thể triển khai thiết kế Chương 2
là phần tính toán cho phần cứng của mặt lặp Chương 3 là phần xây dựng các thuậttoán thu tín hiệu , tách tín hiệu , và điều khiển Chương 4 là thực hiện thi công
Hải phòng, tháng 12 năm 2015
Sinh viên thực hiện đề tài
Trần Thành Công
Trang 8CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VÀ CÁC CÔNG CỤ CẨN THIẾT ĐỂ THIẾT KẾ MẶT LẶP.
1.1 GIỚI THIỆU VỀ HỆ THỐNG LA BÀN SỬ DỤNG TRÊN TÀU BIỂN
Các yêu cầu chung về hệ thống la bàn sử dụng trên tàu biển
Đối với các tàu khi lưu thông trên biển phải trang bị một la bàn từ chuẩn đã đượchiệu chỉnh hoặc một phương tiện xác định phương hướng mà độc lập với bất kỳnguồn năng điện nào để xác định phương hướng và hiển thị các thông tin vềphương hướng được đặt tại vị trí lái chính của tàu
Các tàu phải trang bị các mặt la bàn hoặc phương tiện khác được chia độ theophương ngang 360o
Các tàu khi lưu hành trên biển phải được trang bị một la bàn từ dự trữ cóthể thay thế la bàn nêu trên hoặc 1 phương tiện khác có chức năng tương đương
Tất cả các tàu có tổng dung tích 500 trở lên phải mang một la bàn con quayhoặc phương tiện khác như là các mặt lặp la bàn để các định và hiển thị hướng tàubằng biện pháp không từ tính Các thiết bị này phải được bố trí để có thể dễ dàngquan sát được từ vị trí lái chính
Đối với các tàu có trang bị hệ thống mặt lặp la bàn:
-Mặt lặp phải được chế tạo để có thể lắp đặt thiết bị đọc phương vị
-Mặt lặp phải được treo trong mặt phẳng ngang nhờ hệ thống các đăng để tránh ảnh hưởng chuyển động của tàu
-Mọi mặt lặp được trang bị trên boong hở phải có khả năng kín nước
-Dung sai không quá 0.2o
-Phải được trang bị hệ thống chiếu sáng phù hợp để có thể đọc được chỉ số la bàn mọi lúc.Hệ thống này phải có khải năng điều chỉnh độ sáng
1.2 LA BÀN ĐIỆN ĐỒNG BỘ BẰNG TÍN HIỆU SỐ
Ngày nay với sự phát triển kỹ thuật thông tin số, các thiết bị hàng hải cũngđược phát triển với các đặc trưng nổi bật:
Trang 9-Khả năng điều khiển từ xa thông qua một máy chủ duy nhất.
-Tài nguyên phần cứng và phần mềm có thể cùng được dùng chung, thông tin của thiết bị này có thể được nhiều thiết bị khác khai thác sử dụng
-Độ tin cậy cũng như chất lượng thông tin cao
Bridge Workstations: Hệ thống máy trạm
Nguyên tắc hoạt động:
Trang 10La bàn con quay được đồng bộ với la bàn từ qua thiết bị điều chỉnh conquay Số liệu góc phương vị của la bàn con quay và la bàn từ đều được chuyểnthành dữ liệu dạng số thông qua một đĩa encoder Các dữ liệu này được đóng gói vàtruyền đến hệ máy thống máy trạm thông qua chuẩn truyền thông NMEA 0183.Hoặc được truyền luôn đến cho các mặt lặp để chỉ thị phương vị.
dữ liệu
La bàn
MODULE Điều Khiển Cơ cấu chỉ báo
Hình 1.2 – Nguyên lý chỉ báo của mặt lặp la bàn
Thành phần chính của cơ cấu chỉ báo là LED 7 thanh Thành phần chính củamodule điều khiển là một chip vi điều khiển họ AVR
1.3 CHUẨN TRUYỀN THÔNG NMEA 0183
1.3.1 Khái quát chung về chuẩn giao tiếp NMEA 0183
NMEA 0183 là tiêu chuẩn kỹ thuật cho giao tiếp kết hợp điện với tín hiệuthông tin liên lạc cho các thiết bị hàng hải như echo sounder, máy dò ngang(sonar), máy đo gió (anemometer), gyrocompass, autopilot, thiết bị thu GPS Tiêuchuẩn được xây dựng bởi Hiệp hội Điện tử Hàng Hải Quốc gia Mỹ (NationalMarine Electronics Association).Tiêu chuẩn này thay thế cho các tiêu chuẩn trước
đó là NMEA 0180 và NMEA 0182 Sắp tới sẽ được thay thế bằng tiêu chuẩn mớihơn NMEA 2000 Tuy nhiên, tiêu chuẩn này vẫn được nâng cấp thường xuyên Tiêu chuẩn điện được sử dụng là EIA-422, hầu hết phần cứng với NMEA-0183 kếtnối qua cổng EIA-232
Chuẩn NMEA được sử dụng mã ASCII đơn giản, phương thức truyền tuần tự Dữliệu sẽ được truyền đi trong một câu lệnh theo một chiều duy nhất từ một máyTalker đến một Listener tại một thời điểm Trên cơ sở đó, người ta cũng đã mở
Trang 11rộng để một máy phát có thể đến nhiều máy thu, cũng như một máy thu có thể nhậnthông tin từ nhiều máy phát.
1.3.2 Đặc tính điện
Các thiết bị NMEA0183 được thiết kế cho cả Listener và Talker (một số thiết
bị là cả 2), sử dụng một giao diện nối tiếp bất đồng bộ có các chỉ số như sau:
Hình 1.3 – Cấu trúc khung dữ liệu tín hiệu chuẩn NMEA 0183
NMEA0183 cho phép ghép nối một Talker và nhiều Listener trên cùng mộtmạch Loại dây dùng để liên kết là cặp dây xoắn bọc lưới, với lớp bọc chỉ được nốiđất ở Talker Tiêu chuẩn ghi rõ cách thức sử dụng của kết nối riêng
Trang 12Hình 1.4 – Kết nối giữa một Talker và nhiều Listener
Cổng ra của Talker tương thích với EIARS-422, một hệ thống vi sai với 2dây tín hiệu A và B Tín hiệu dẫn vi sai không nối đất và chống được nhiễu
Tuy nhiên, một dây kết đơn tại mức TTL cũng được chấp nhận Điện áp trên dây Atương đương với dây TTL đơn, khi mà điện áp trên dây B đảo ngược lại (nếu ngõ
ra A là +5V, thì ngõ ra B là 0V, và ngược lại Đấy là chế độ đơn cực của RS-422.Còn chế độ lưỡng cực sử dụng điện áp ±5V)
Trong trường hợp khác, máy thu sử dụng một bộ opto cách ly với một mạchbảo vệ phù hợp
Cổng vào cần được cách ly với mass máy thu Thực tế, dây đơn hoặc dây Acủa RS-422 có thể nối trực tiếp cổng vào RS-232 máy tính Thậm chí nhiều sảnphẩm gần đây của, như máy thu GPS cầm tay, không có cổng ra vi sai RS-422,nhưng với chỉ một dây đơn có mức tín hiệu phù hợp như TTL hay CMOS 5V
Trang 131.3.3.Cách thức gói tin của NMEA 0183
Tất cả dữ liệu được truyền đều ở dạng một câu Chỉ có những ký tự in đượccủa bộ mã ASCII được cho phép, cộng thêm với CR và LF Mỗi gói tin bắt đầubằng ký tự $ và kết thúc bằng kí tự <CR><LF>
Định dạng chung 1 gói dữ liệu chuẩn truyền thông NMEA
$xxyyy,a1,a2, <CR><LF>
Hai kí tự đứng sau $ là định dạng Talker Ba ký tự tiếp sau đó là nhận dạngcủa câu, tiếp đến là một số các trường dữ liệu phân cách bởi dấu phẩy, một số kiểmtra tổng (checksum) tùy chọn, cuối cùng là carriage return/line feed Trường dữ liệuđược định nghĩa duy nhất với mỗi kiểu câu Ví dụ như:
$HCHDT,160,M<CR><LF>
"HC" cho biết Talker là la bàn từ, “HDT” cho biết thông tin tiếp theo là hướng chỉ
la bàn từ “160” là giá trị góc phương vị la bàn, và “M” chỉ rõ giá trị góc phương vịgiống la bàn từ
Một câu có thể chứa đến 80 ký tự cộng thêm “$” và <CR><LF> khi dữ liệucủa một trường không có thì trường ấy được lấp đầy, các dầu phẩy lúc này sẽ đượcgửi đi mà không có khoảng cách nào giữa chúng Trường checksum bao gồm mộtdấu “*” và 2 số hex là kết quả của phép OR giữa các ký tự, nhưng không bao gồmcác dấu "$" và "*"
1.3.4 Mã nhận dạng Talker và định dạng tín hiệu la bàn
Mã nhận dạng Talker
AG Autopilot – General: Máy lái tự động đa năng
AP Autopilot – Magnetic: Máy láy tự động theo từ trường
CD Communications – Digital Selective Calling (DSC): gọi chọn số DSC
CR Communications – Receiver / Beacon Receiver: Đèn hiệu thu
CS Communications – Satellite: Vệ tinh truyền thông
Trang 14CT Communications – Radio-Telephone (MF/HF): Thoại vô tuyến MF/HF
CV Communications – Radio-Telephone (VHF): Thoại vô tuyến VHF
CX Communications – Scanning Receiver: Máy thu quét truyền thông
DF Direction Finder: Kính ngắm định hướng
EC Electronic Chart Display & Information System (ECDIS): Hệ thống thôngtin và biểu đồ điện tử
EP Emergency Position Indicating Beacon: Phao định vị vô tuyến
ER Engine Room Monitoring Systems: Các hệ thống kiểm tra buồng máy
GP Global Positioning System (GPS): Hệ thống định vị toàn cầu GPS
HC Heading – Magnetic Compass: Hướng mũi tàu theo la bàn từ
HE Heading – North Seeking Gyro: Hướng mũi tàu theo con quay hướng Bắc
HN Heading – Non North Seeking Gyro: Hướng mũi tàu không theo con quay
II Integrated Instrumentation: Trang thiết bị tích hợp
IN Integrated Navigation: Thông tin định vị tích hợp
LC Loran C: hệ thống vô tuyến hàng đạo xa
P Proprietary Code: Mã sở hữu riêng
RA RADAR and/or ARPA
SD Sounder, Depth: Máy đo độ sâu
SN Electronic Positioning System: Hệ thống định vị điện tử
SS Sounder, Scanning: Máy quét dò
TI Turn Rate Indicator: Bộ chỉ báo tốc độ quay lái
VD Velocity Sensor, Doppler, other/general: Bộ cảm biến tốc độ theo hiệu ứngDoppler
DM Velocity Sensor, Speed Log, Water, Magnetic: Bộ cảm biến tốc độ theo tốc
độ tàu, nước, từ trường
VW Velocity Sensor, Speed Log, Water, Mechanical: Bộ cảm biến tốc độ theotốc độ tàu, nước, động cơ
Trang 15WI Weather Instruments : Dụng cụ báo thời tiết.
YX Transducer: Bộ biến đổi
ZA Timekeeper – Atomic Clock: đồng hồ nguyên tử
ZC Timekeeper – Chronometer: Đồng hồ bấm giờ
ZQ Timekeeper – Quartz: Đồng hồ thạch anh
ZV Timekeeper – Radio Update, WWV or WWVH: Đồng hồ được cập nhậtbằng vô tuyến, WWV hoặc WWVH
Các mã nhận dạng kiểu dữ liệu
AAM WaypointArrival Alarm: Thông tin báo động
ALM GPSAlmanac Data: Dữ liệu GPS
APA Autopilot Sentence "A": Tín hiệu A từ máy lái tự động
APB Autopilot Sentence "B": Tín hiệu B từ máy lái tự động
ASD Autopilot System Data: Dữ liệu từ hệ thống máy lái tự động
BEC Bearing & Distance to Waypoint – Dead Reckoning: Góc phương vị vàkhoảng cách đến mục tiêu – Tính toán va chạm
BOD Bearing – Waypoint to Waypoint: Góc phương vị và vị trí xuất phát tới mụctiêu
BWC Bearing and Distance to Waypoint – Latitude, N/S, Longitude, E/W, UTC,Status: Góc phương vị và khoảng cách đến mục tiêu – Vĩ tuyến, Bắc/Nam, Kinhtuyến, Đông/Tây, UTC, Trạng thái
BWR Bearing and Distance to Waypoint – RhumbLine Latitude, N/S, Longitude,E/W, UTC, Status: Góc phương vị và khoảng cách đến mục tiêu – Đường vĩ tuyến,Bắc/Nam, Kinh tuyến, Đông/Tây, UTC, trạng thái
DBT Depth Below Transducer: Thông tin độ sâu
DPT Heading – Deviation & Variation: Thông tin về cuộc gọi chọn số
DSI DSC TransponderInitiate: Thiết bị phát đáp Radar
DSR DSC TransponderResponse: Bộ đáp ứng tín hiệu phát đáp
Trang 16GGA Global Positioning System Fix Data Time, Position and fix related data for aGPS receiver: Dữ liệu định vị toàn cầu
GLL Geographic Position – Latitude/Longitude: Vị trí, kinh độ, vĩ độ
HDT Heading – True: Hướng thực
MSK MSK Receiver Interface (for DGPS Beacon Receivers): Thông tin cổng thuMSK dùng cho máy thu DGPS
MSS MSKReceiver Signal Status: thông tin về nhiệt độ bộ thu tín hiệu MSK
MWD Wind Direction & Speed: Hướng và tốc độ gió
MWV Wind Speed and Angle: Tốc độ gió và góc thổi
OSD Own Ship Data: Dữ liệu tàu
Mỗi câu NMEA được định nghĩa thống nhất như sau :
-Mỗi chuỗi bắt đầu bằng ký tự " $."
-5 ký tự đầu tiên biểu hiện loại của chuỗi 2 ký tự đầu định nghĩa thiết bị sửdụng chuỗi 3 ký tự tiếp theo xác định ý nghĩa của chuỗi trả về
-Các trường dữ liệu nối tiếp nhau bởi dấu “,”
-Sau dấu “*” là 2 ký tự số checksum miêu tả 1 số hex Checksum là 1 phépXOR giữa tất cả các ký tự từ dấu “,” đến dấu “*” Checksum không bắt buộcđối với hầu hết các câu dữ liệu nhưng bắt buộc đối với RMA, RMB và RMC.-Chuỗi kết thúc với ký tự
Trang 17So với các chip vi điều khiển 8 bits khác, AVR có nhiều đặc tính hơn hẳn, hơn cảtrong tính ứng dụng (dễ sử dụng) và đặc biệt là về chức năng:
Ít linh kiện ngoài, nguồn dao động được tích hợp sẵn
Thiết bị lập trình (mạch nạp) cho AVR rất đơn giản
Bên cạnh lập trình bằng ASM, cấu trúc AVR được thiết kế tương thích C
Nguồn tài nguyên về source code, tài liệu, application note…rất lớn trên internet Các dòng chip AVR: AT90, Attiny, ATmega, Atxmega, FPSLIC
1.4.2 Cấu trúc bên trong của AVR
Giới thiệu
Chức năng chính của CPU là đảm bảo cho việc thực hiện chương trình mộtcách chính xác Vì vậy CPU cần phải truy nhập vào bộ nhớ, thực hiện các phéptoán, điều khiển các ngoại vi và điều khiển ngắt
Trang 18Hình 1.6 – Sơ đồ cấu trúc bên trong của dòng chip AVR
Các thành phần của vi điều khiển
Đơn vị số học ALU
Đơn vị thực thi cao ALU của dòng chip AVR hoạt động theo hướng kết nốitrực tiếp tất cả 32 thanh ghi đa năng Trong một chu kỳ đồng hồ đơn, tổ chức ALUgiữa những thanh ghi trong tập thanh ghi đa năng được thực thi Tổ chức Alu đượcchia thành ba mục chính: toán học logic, chức năng bit Một vài sự thi hành cấutrúc cũng cung cấp một bộ nhân việc hỗ trợ cả phép nhân có dấu/ không dấu vàđịnh dạng phân số
Trang 19Thanh ghi trạng thái (Status Register)
Nằm trong vùng nhớ I/O, thanh ghi SREG có địa chỉ I/O là 0x003F và địachỉ bộ nhớ là 0x005F (thường đây là vị trí cuối cùng của vùng nhớ I/O) là mộttrong số các thanh ghi quan trọng nhất của AVR Thanh ghi SREG chứa 8 bit cờ(flag) chỉ trạng thái của bộ xử lí, tất cả các bit này đều bị xóa sau khi reset, các bitnày cũng có thể được đọc và ghi bởi chương trình Cấu trúc thanh ghi như sau:
Hình 1.7 – Thanh ghi trạng thái
Tập các thanh ghi đa năng
Tập thanh ghi là tập lệnh RISC được tối ưu hóa cho AVR được tăng cường.Cấu trúc này được yêu cầu có tính hiệu suất và tính linh hoạt, sơ đồ vào/ra sau đây
hỗ trợ bởi tập thanh ghi:
Một toán hạng đầu ra 8 bit và một kết quả đầu vào 8 bit
Hai toán hạng đầu ra 8 bit và một kết quả đầu vào 8 bit
Hai toán hạng đầu ra 8 bit và một kết quả đầu vào 16 bit
Một toán hạng đầu ra 16 bit và một kết quả đầu vào 16 bit
Tất cả các lệnh điều thanh ghi trong tập lệnh đều có thể truy xuất trực tiếp vàtrong 1 chu kỳ đơn Mỗi thanh ghi được phân chia một địa chỉ bộ nhớ dữ liệu, ánh
xạ chúng một cách trực tiếp với 32 vị trí đầu của không gian dữ liệu người dụng.Mặc dù không được thực thi theo đúng quy luật như vùng SRAM, tổ chức nhớ nàythể hiện sự linh hoạt tốt trong việc truy xuất thanh ghi, vì thanh ghi X, Y có thểthiết lập đến chỉ mục nào đó trong tập thanh ghi đa năng
Cấu trúc bộ nhớ
Trang 20AVR có cấu trúc Harvard, trong đó đường truyền cho bộ nhớ dữ liệu (data memorybus) và đường truyền cho bộ nhớ chương trình (program memory bus) được táchriêng Data memory bus chỉ có 8 bit và được kết nối với hầu hết các thiết bị ngoại
vi, với register file Trong khi đó program memory bus có độ rộng 16 bits và chỉphục vụ cho instruction registers
Hình 1.8 – Cấu trúc bộ nhớ của AVR
Bộ nhớ chương trình (Program memory)
ATMega16 chứa bộ nhớ Flash có thể lập trình lại trong hệ thống trên chip 16kbyte cho việc lưu trũ chương trình Từ đó tất cả các lệnh AVR đều có độ rộng 16hay 32 bit, Flash được tổ chức như 4k x 16
Bộ nhớ Flash chịu được ít nhất 10.000 chu kỳ ghi/xóa Bộ đếm chương trìnhATMega8 rộng 12 bit, như vậy bộ nhớ lập trình địa chỉ 4k định rõ Hoạt động củavùng chương trình Boot và được kết hợp những bit Lock Boot cho sự bảo vệ phầnmềm
Trang 21Bộ nhớ dữ liệu SRAM
Có không dưới vị trí bộ nhớ dữ liệ định địa chỉ cho tập thanh ghi, bộ nhớ I/O
và dữ liệu SRAM nội 96 vị trí đầu tiên dùng địa chỉ cho tập thanh ghi, bộ nhớ I/O
và 1024 vị trí tiếp theo được định địa chỉ cho bộ nhớ dữ liệu SRAM nội
Có 5 địa chỉ khác nhau dùng cho các vùng bộ nhớ dũ liệu: dịch chuyển trực tiếp,gián tiếp, tiền giảm và tăng dữ liệu gián tiếp Trong tập thanh ghi, từ thanh ghi R26đến R31 có vai trò là thanh ghi con trỏ địa chỉ gián tiếp
Chế độ địa chỉ trực tiếp tham chiếu
Khi sử dụng chế độ thanh ghi địa chỉ gián tiếp tự động tăng hay giảm vị trí, thanhghi địa chỉ X, Y và Z được sử dụng
32 thanh ghi làm việc đa năng, 64 thanh ghi vào/ra và 1024 byte bộ nhớ dữ liệuSRAM nội trong Atmega 8 đều sử dụng qua tất cả các chế độ này
Bộ nhớ dữ liệu EEPROM
ATMega8 chứa 512 bte của bộ dữ liệu EEPROM Nó vận hành trong vùng khônggian dữ liệu riêng biệt, nơi mà những bte dũ liệu đơn có thể được đọc và ghi.EEPROM có thể chịu được ít nhất 100.000 chu kỳ ghi/xóa
Bộ nhớ vào/ra
Tất cả I/O của ATMega16 và thiết bị ngoại vi được đặt trong không gian vào/ra Vịtrí vào/ra được truy xuất bởi lệnh IN/OUT, để truyền dữ liệu giữa 32 thanh ghi đanăng và vùng không gian vào/ra Những thanh ghi vào/ra có vùng địa chỉ $00 -
$1F,
Ngăn xếp
Stack được hiểu như là 1 “tháp” dữ liệu, dữ liệu được chứa vào stack ở đỉnh “tháp”
và dữ liệu cũng được lấy ra từ đỉnh Kiểu truy cập dữ liệu của stack gọi là LIFO(Last In First Out – vào sau ra trước)
Trang 22Hình 1.9 – Cách truy cập dữ liệu của ngăn xếp 1.4.3 Các Port nhập xuất
Tất cả các Port AVR khi được sử dụng như các port nhập/xuất số thôngthường đều được thực hiên được các chức năng đọc – sửa đổi – ghi Điều này cónghĩa là hướng của một chân port nào đó có thể thay đổi mà không cần chỉ địnhtrước với lệnh SBI và CBI
Chức năng nhập/xuất số thông thường
Mỗi Port gồm ba thanh DDxn, PORTxn và PINxn, các bit DDxn được truyxuất tại địa chỉ vào/ra DDRx, các bit PORTxn tại địa chỉ vào/ra PORTx và các bitPINxn tại địa chỉ vào ra PINx
Bit DDxn trong thanh ghi DDRx lựa chọn hướng của chân này Nếu DDxnđược ghi mức 1, Pxn được định như một đầu ra Nếu DDxn được ghi logic 0, Pxnđược định như một đầu vào
Nếu PORTxn được ghi logic 1 khi được như một đầu vào, điện trở kéo lênđược kích hoạt Để chuyên điện trở kéo lên không hoạt động, PORTxn phải đượcghi logic 0 hay chân phải được định như một đầu ra Những port là trạng thái khimột điều kiện reset trở nên tích cực, ngay khi không có đồng hồ đang chạy
Trang 23Nếu PORTxn được ghi logic 1 khi một chân được định như một đầu ra, thìchân port được đưa lên cao 1 Nếu PORTxn được ghi logic 0 khi chân được địnhnhư một chân đầu ra, chân port được điều khiển thấp (0).
Để đọc dữ liệu từ ngoài thì ta phải thực hiện các bước sau:
Đưa dữ liệu ra thanh ghi điều khiển DDRxn để đặt cho PORTx (hoặc bit n trongport) đó là đầu vào (xóa thanh ghi DDRx hoặc bit)
Sau đó kích hoạt điện trở pull-up bằng cách set thanh ghi PORTx (bit)
Cuối cùng đọc dữ liệu từ địa chỉ PINxn (trong đó x: là cổng và n là bit)
Để đưa dữ liệu từ vi điều khiển ra các cổng cũng có các bước hoàn toàntương tự Ban đầu ta cũng phải định nghĩa đó là cổng ra bằng cách set bit tươngứng của cổng đó….và sau đó là ghi dữ liệu ra bit tương ứng của thanh ghi PORTx
Khi kích hoạt một ngắt bộ vi điều khiển đi qua các bước sau:
-Vi điều khiển kết thúc lệnh đang thực hiện và lưu địa chỉ của lệnh kế tiếp(PC) vào ngăn xếp
-Nhảy đến một vị trí cố định trong bộ nhớ được gọi là bảng véc tơ ngắt nơilưu giữ địa chỉ của một trình phục vụ ngắt
-Bộ vi điều khiển nhận địa chỉ ISR từ bảng véc tơ ngắt và nhảy tới đó Nó bắtđầu thực hiện trình phục vụ ngắt cho đến lệnh cuối cùng của ISR là RETI( trở về từngắt )
Trang 24Khi thực hiện lệnh RETI bộ vi điều khiển quay trở về nơi nó đã bị ngắt.Trước hết nó nhận địa chỉ của bộ đếm chương trình PC từ ngăn xếp bằng cách kéohai byte trên đỉnh của ngăn xếp vào PC Sau đó bắt đầu thực hiện các lệnh từ địachỉ đó.
Các mức ưu tiên của các ngắt từ thấp nhất đến cao nhất:
Ngắt thực hiện chạy từng lệnh (INT1)
Ngát che được INTR
Ngắt không che được NMI
Ngắt nội bộ (INT0 xảy ra cho phép chia số 0, ngắt mềm)
Trang 25Ngắt ngoài (External Interrupt).
Là loại ngắt duy nhất độc lập với các thiết bị của chip, các ngắt khác thườnggắn với hoạt động của 1 thiết bị nào đó như Timer/Counter, giao tiếp nối tiếpUSART, chuyển đổi ADC…
Các ngắt ngoài được kích hoạt bởi 2 chân INT0, và INT1 Chú ý rằng nếu đãkích hoạt, các ngắt sẽ kích bằng (trigger even)nếu các chân INT0, INT1 được cấuhình là các ngõ ra Đặc điểm này cung cấp 1 con đường chung cho ngắt mềm Cácngắt ngoài có thể được kích bởi cạnh xuống hoặc lên hoặc mức thấp
d.Timer/Counter (T/C)
- Timer/Counter là các module độc lập với CPU Chức năng chính của các
bộ Timer/Counter là định thì (tạo ra một khoảng thời gian, đếm thời gian…) vàđếm sự kiện
Hoạt động của bộ Timer
Mạch đếm lên làm thanh ghi TCNTn tăng 1 đơn vị mỗi khi có xung clkTn,khi đạt giá trị lớn nhất (8bit = 255), cờ TOVn được set (logic 1) và bộ đếm tràn, giátrị bộ đến TCNTn trở về 00 và tiếp tục đếm
Trang 26Xung clkTn có thể được lựa chọn từ nhiều nguồn khác nhau Khi chọn xung nội(system clock), Timer/Counter là một Timer Khi chọn xung ngoài (thông qua chânTn) Timer/Counter là Counter.
Bộ Timer/Counter1 16-bit
Đặc điểm
2 đơn vị ngõ vào so sánh độc lập đôi thanh ghi so sánh ngõ ra đệm
1 đơn vị chốt ngõ vào(One Input Capture Unit)
Bộ chống nhiễu lối vào(Input Capture Noise Canceler)
Xóa timer trong Compare
Giá trị chu kỳ PWM
Bộ phát tần số chung
Bộ đếm sự kiện ngoài
4 nguồn ngắt độc lập (TOV1, OCF1A, OCF1B, and ICF1)
Nguyên lý hoạt động bộ Timer
Với chế độ hoạt động đơn giản nhất của T/C1, thanh ghi đếm TCNT1 đượctăng giá trị từ 0 (BOTTOM) đến 65535 hay 0xFFFF (TOP) và quay về 0 Chế độnày hoàn toàn giống cách mà Timer0 hoạt động chỉ có khác là giá trị đếm cao nhất
là 65535 thay vì 255 như trong timer0 Để set T/C1 ở Normal mode chúng ta cầnset 4 bit WGM về 0, vì 0 là giá trị mặc định của các thanh ghi nên thực tế chúng takhông cần tác động đến các bit WGM Duy nhất một việc quan trọng cần làm là setcác bit Clock Select (CS12, CS11, CS10) trong thanh ghi TCCR1B
Một số định nghĩa khi khai thác chế độ bình thường của T/C1
BOTTOM: Bộ đếm đạt tới BOTTOM khi co giá trị 0x0000
MAX: Bộ đếm đạt tới MAX khi khi đạt giá trị 0xFFFF (65535 thập phân)
TOP: Bộ đếm đạt tới TOP khi nó bằng với giá trị lớn nhất của chuỗi đếm Giá trịnày có thể được gán bởi các giá trị cố định: 0x00FF, 0x01FF, or 0x03FF, hoặc giátrị trong bộ nhớ của các thanh ghi OCR1A, ICR1
Trang 271.5 LED 7 THANH VÀ PHƯƠNG PHÁP HIỂN THỊ CỦA LED 7 THANH.
1.5.1 Khái quát
LED 7 thanh (Seven Segment display) là 1 linh kiện rất được sử dụng rộng
rãi và được dùng như là 1 công cụ hiển thị đơn giản nhất
Đối với các thiết bị cần chỉ báo ra trạng thái để người sử dụng có thể biết được cácthông tin cần thiết thì người ta thường sử dụng LED 7 thanh
Sử dụng LED 7 thanh ta có thể hiển thị các thông tin đơn giản như 1 dãy số Ví dụnhư trong các thiết bị hiện thị thời gian, nhiệt độ, các bộ đếm…
Hình 1.11 – Hình dạng LED 7 thanh
Trong LED 7 thanh bao gồm 7 LED nối lại với nhau và 1 LED hiển thị dấuchấm ,7 LED đơn được mắc để có thể hiển thị các con số từ 0 - 9 và 1 vài chữ cái.Các LED đơn lần lượt được kí hiệu theo chữ cái A- B -C-D-E-F-G và dấu chấm dot.Như vậy để hiển thị ký tự bất kì nào thì ta phải cấp nguồn vào 1 chân chung vàxuất tín hiệu ra các thanh còn lại đó là LED hiện thị kí tự như mong muốn
Trang 281.5.2 Các thông số của LED 7 thanh
LED 7 thanh có nhiều loại nhưng cơ bản có 1 loại đó là
+ Loại Anode chung (chân (+) các LED nối chung với nhau
Hình 1.12 LED 7 thanh loại Anode chung
+ Loại Cathode chung (chân (-) các LED nối chung với nhau )
Hình 1.13 LED 7 thanh loại Cathode chung
Vì LED 7 thanh là tập hợp của các LED đơn,vì vậy khi kết nối cần chú ý để chodòng qua mỗi LED đơn chỉ vào khoảng 10-20mA để LED không bị hỏng
Kết nối LED 7 thanh với vi điều khiển
Lối vào của tín hiệu điều khiển của LED 7 thanh có 8 đường.Cho nên có thể dùng 1PORT nào đó của vi điều khiển để đưa dữ liệu ra LED 7 thanh.Vì vậy LED 7 thanh
Trang 29có thể nhận 1 dữ liệu 8 bit từ vi điều khiển để hiênh thị trạng thái hoạt sáng tắt củatừng đèn LED đơn
Trang 30CHƯƠNG 2: TÍNH TOÁN VÀ THIẾT KẾ PHẦN CỨNG CHO MẶT LẶP
LA BÀN HIỆN THỊ SỐ
2.1 XÂY DỰNG CẤU TRÚC SƠ ĐỒ KHỐI CHO MẶT LẶP LA BÀN HIỂN THỊ SỐ.
Sơ đồ nguyên lý của mặt lặp la bàn số như sau:
Hình 2.1.Sơ đồ khối của mặt lặp la bàn hiển thị số
Nhiệm vụ của các khối chức năng
Nguồn: tạo ra điện áp cố định cho toàn bộ module điều khiển và cơ cấu chỉbáo
Khối giao tiếp với chuẩn NMEA 0183 : biến đổi tín hiệu chuẩn NMEA 0183 ở mứclogic của RS422 về chuẩn logic TTL giúp cho vi điều khiển có thể gia tiếp với tínhiệu thu được từ la bàn
Khối xử lý trung tâm: thu nhận tín hiệu NMEA 0183 sau khi được đưa vềmức logic của cuẩn TTL, phát hiện có tín hiệu, nhận dạng xem đó có phải tín hiệu
từ la bàn hay không nếu không thì lọc bỏ các tín hiệu đó ,sau đó lưu trữ số liệu gócchỉ báo phương vị của la bàn chủ , và đưa ra cơ cấu chỉ báo LED 7 thanh
Khối xử lí trung tâm
Khối Dimmer
Khối giao tiếp với chuẩn NMEA 0183
Trang 31Cơ cấu chỉ báo LED 7 thanh : sử dụng 4 LED 7 thanh để hiện thị hướng củatàu so với hướng bắc thật
Khối dimmer thay đổi tần số quét LED điều khiển độ sáng của các LED 7thanh
Nguyên tắc hoạt động.
Khi người dùng bật nguồn (hoặc bấm nút Reset), khối xử lý trung tâm kiểmtra xem có tín hiệu đến từ NMEA 0183 hay không, nếu có tín hiệu và đúng là tínhiệu từ là bàn nó sẽ tiến hành xử lí tín hiệu để tách lấy tín hiệu chỉ báo góc phương
vị, sau khi có được dữ liệu nó sẽ lưu trữ lại và tiến hành cung cấp cho cơ cấu chỉbáo LED 7 thanh.Khối chỉ báo gồm 4 LED 7 thanh hiện thị góc phương vị hiệnthời của tàu Quá trình quét LED nhanh hay chậm phụ thuộc vào khối dimmer.Quátrình thu tín hiệu, lưu trữ số liệu góc phương vị của mặt lặp và tính toán hướngquay được thực hiện liên tục cho đến khi ngắt nguồn hoặc ấn nút reset Nếu trongkhoảng thời gian nhất định mà không có tín hiệu nào từ la bàn chủ vi xử lí sẽ xuấttín hiệu để báo rằng không nhận được dữ liệu
H1: Điện áp 1 chiều đưa vào
5V: Cấp nguồn điện áp ổn định cho khối xử lý trung tâm
Trang 32Hình 2.2– Sơ đồ nguyên lý mạch nguồn +5V
Các linh kiện sử dụng trong mạch:
+ Tụ C1 và C2 (470uF/50V) lọc các thành phần giúp san bằng điện áp
tụ C2 và C4 để lọc bỏ các xung có tần số cao sinh ra trong mạch
Trang 332.2.2.Thiết kế khối xử lý trung tâm.
Mạch điều khiển trung tâm là mạch quan trọng nhất sử dụng vi điều khiểnatmega16.Mạch có nhiệm vụ nhận dữ liệu từ khối giao tiếp với chuẩn NMEA 0183
xử lí và đưa ra bộ chỉ bảo số để chỉ báo hướng của tàu
Sau đây là sơ đồ nguyên lý của mạch
Hình 2.3 – Sơ đồ nguyên lý khối xử lý trung tâm cơ cấu chỉ báo
Cấu tạovà nguyên lý hoạt động
Khối vi điều khiển gồm IC vi điều khiển Atmega16, mạch Reset thích hợpvới dòng AVR và mạch tạo dao động ngoài bằng thạch anh
Atmega 16 là vi điều khiển 8 bit dựa trên cấu trúc RISC.Vởi khả năng thực hiệnmỗi lệnh trong vòng 1 chu kỳ xung clock
Atmega 16 có đặc điểm gồm 16KB bộ nhớ Flash với khả năng đọc trong khighi.512 byte bộ nhớ EEPROM,1KB bộ nhớ SRAM.32 thanh ghi chức năngchung 3 bộ định thời/bộ đếm/ ngắt nội và ngắt ngoại.URSAT
Các chân tín hiệu vào và ra vi điều khiển Atmega16:
Trang 34Tín hiệu vào:
RESET: tín hiệu khởi động lại, nối từ mạch reset
RxD: tín hiệu la bàn nhận được từ khối giao tiếp với NMEA
DIM+ và DIM- là các chân nhận tín hiệu tăng giảm độ sáng của LED 7 thanh Tín hiệu ra:
PIN A0-A4 :Điều khiển cho phép tắt , mở các LED 7 thanh
PIN C0-C7 :Giá trị hiện thị trên LED 7 thanh
Mạch dao động của khối vi điều khiển:
Sơ đồ nguyên lý
Hình 2.4 – Mạch tạo dao động cho vi điều khiển
Tác dụng của các linh kiện:
Trang 362.3 KHỐI GIAO TIẾP VỚI NMEA 0183
Mạch nguyên lý:
Hình 2.6 – Mạch giao tiếp với NMEA0183
Có nhiều loại mạch giao tiếp NMEA để chuyển đổi các mức điện áp, có thể
kể đến mạch giao tiếp cách ly quang được sử dụng phổ biến vì mạch này không sửdụng chung dây GND, tránh làm ảnh hưởng và nhiễu cho tín hiệu của module điềukhiển và có tác dụng bảo vệ cao