1.2. NHIỆM VỤ CỦA MẠCH BÁO CHÁYTự động phát hiện ra cháy một cách nhanh chóng, chính xác và kịp thời trong vùnghệ thống đang bảo vệ.Tự động phát ra các tín hiệu báo động, chỉ thị và các tín hiệu điều khiển các thiết bị ngoại vi của hệ thống báo cháy tự động nhằm thực hiện một nhiệm vụ cụ thể nào đó.Đặc biệt, với hệ thống báo cháy tự động sử dụng đầu báo cháy khói thì nó còn có nhiệm vụ quan trọng hơn là “cảnh báo”, tức là phát hiện và thông báo sự sắp cháy, sự cháy âm ỉ chưa có ngọn lửa.1.3. PHÂN LOẠI HỆ THỐNG BÁO CHÁY TỰ ĐỘNGPhân loại hệ thống báo cháy tự động theo nguyên lý làm việc của đầu báo cháy có: Hệ thống báo cháy tự động sử dụng đầu báo cháy khói: là hệ thống báo cháy tự động làm việc dựa vào nguyên lý làm việc của đầu báo cháy khói. Hệ thống này chủ yếu phát hiện ra sự gia tăng nồng độ khói ở trong khu vực bảo vệ.
Trang 1Tôi xin cam đoan những vấn đề tôi trình bày trong luận văn là do tôi viết dưới
sự hướng dẫn của PGS.TS NGUYỄN HỮU TRUNG Nếu có gì sai tôi xin
chịu trách nhiệm trước hội đồng bảo vệ nhà trường
Trang 2Tôi xin chân thành cảm ơn: Trung tâm sau đại học, Khoa điện tử Trường đạihọc công nghiệp Hà Nội, đẵ tạo điều kiện thuận lợi giúp đỡ cho tôi trong suốtquá trình học tập và nghiên cứu
Tôi xin bày tỏ lòng biết ơn sâu sắc thầy PGS TS Nguyễn Hữu Trung, ngườihướng dẫn khoa học cho tôi Tôi cũng xin chân thành cảm ơn các thầy côgiáo, các bạn đồng nghiệp đẵ đóng góp nhiều ý kiến quý báu và giúp đỡ tậntình để luận văn được hoàn thành
Hà nội Ngày 15 tháng 12 năm 2015
Học viên
Nguyễn Văn Tùng
Trang 3DANH MỤC KÝ HIỆU CÁC CHỮ VIẾT TẮT
DANH MỤC HÌNH VẼ
MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG BÁO CHÁY TỰ ĐỘNG 3
1.1 KHÁI QUÁT 3
1.2 NHIỆM VỤ CỦA MẠCH BÁO CHÁY 3
1.3 PHÂN LOẠI HỆ THỐNG BÁO CHÁY TỰ ĐỘNG 3
1.4 CÁC THÀNH PHẦN CƠ BẢN CỦA HỆ THỐNG BÁO CHÁY TỰ ĐỘNG 5
1.4.1 Trung tâm báo cháy 5
1.4.2 Thiết bị đầu vào 5
1.4.3 Thiết bị đầu ra 8
1.5 TỔNG QUAN VỀ VI ĐIỀU KHIỂN ARM DÙNG TRONG THIẾT KẾ HỆ THỐNG BÁO CHÁY TỰ ĐỘNG 11
1.5.1 Lịch sử phát triển 11
1.5.2 Giới thiệu về ARM 13
1.5.3 Giới thiệu về ARM CORTEX 14
1.5.3.1 ARM Cortex-M3 16
1.5.3.1.1 Sơ đồ khối ARM 16
Trang 41.5.3.2 Tổng quan về LCP1768 36
1.5.3.2.1.Thông số tổng quát 36
1.5.3.2.2 Sơ đồ chân 38
1.6 TIÊU CHUẨN THIẾT KẾ MẠCH BÁO CHÁY 48
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG BÁO CHÁY 50
2.1 TÍNH CẤP CỦA ĐỀ TÀI 50
2.2 SƠ ĐỒ HỆ THỐNG 51
2.3 SƠ ĐỒ NGUYÊN LÝ 52
2.3.1 Khối đầu vào cảm biến 52
2.3.2 LPC 1768 53
2.3.3 Module sim 900 54
2.4 SƠ ĐỒ MẠCH IN 59
CHƯƠNG 3- KẾT QUẢ THỰC NGHIỆM 72
3.1 SƠ ĐỒ PHẦN CỨNG MẠCH BÁO CHÁY SỬ DỤNG VI ĐIỀU KHIỂN ARM 72
3.2 KẾT QUẢ CHẠY THỬ 72
3.3 KẾT QUẢ THỰC TẾ ĐÁNH GIÁ 73
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 74
TÀI LIỆU THAM KHẢO 75
Trang 5Viết tắt Tiếng Anh Tiếng Việt
ADC Analog Digital Converter Bộ chuyển đổi số sang tương tự ADT Android Development Tools Công cụ phát triển Android
RISC Reduced Instructions Set Computer
Máy tính với tập lệnh đơn giản hóa
ARM Advanced RISC Machine
CPU Central Processing Unit bộ xử lí trung tâm
XPSR Program Status Register
ANSI C American National Standards Institute
LCD Liquid Crystal Display Màn hình tinh thể lỏng
PHP Hypertext Preprocessor Ngôn ngữ lập trình kịch bản PPC Pocket Personal Computer Máy tính cá nhân
PWM Pulse Width Modulation Điều chế độ rộng xung
Trang 6Hình 1.1.Sơ đồ khối ARM 16
Hình 1.2 Các phiên bản kiến trúc của lõi ARM 17
Hình 1.3 Kiến trúc đường ống của ARM Cortex-M3 18
Hình 1.4 : Kiến trúc load và store của ARM Cortex-M3 19
Hình 1.5 : Mô hình lập trình của ARM Cortex-M3 20
Hình 1.6 : Thanh ghi trạng thái chương trình của CPU Cortex 21
Hình 1.7 : Mô hình hoạt động của chế độ Thread và Handler 24
Hình 1.8 : Đồ thị biểu diễn hiệu năng của bộ xử lí Cortex 25
Hình 1.9 : Bản đồ bộ nhớ 26
Hình 1.10 : Kiểu dữ liệu truy cập 28
Hình 1.11 : Trạng thái hoạt động Systick 30
Hình 1.12 : Chế độ năng lượng CPU 32
Hình 1.13 : Khỗi hỗ trợ gỡ lỗi 33
Hình 1.14 : Khối ADC 35
Hình 1.15 : Khối SPI 36
Hình 1.16 : Sơ đồ khối LPC1768 37
Hình 1.17 : Sơ đồ chân LPC1768 38
Trang 7M Ở ĐẦU ĐẦU U
Phòng chống cháy nổ là công tác có ý nghĩa vô cùng quan trọng đối với sựphát triển bền vững của mô hình nhà chung cư cũng như sự phát triển bềnvững của đô thị Hỏa hoạn đãtừnggây nhiềuthảmhọa cho loàingười Việcphòngchốngcháy đã đặtra các yêu cầubắtbuộccho các nhàmáyxínghiệpcôngnghiệp, kho tàng , khu dân cư Đối với những nhà cao tầng chủ yếu phòngngừa và tự chữa cháy là chính, khi thiết kế nhà cao tầng phải theo quy chuẩn
tự động chữa cháy Tuy nhiên, trên thực tế, Việt Nam chưa có tiêu chuẩnphòng cháy chữa cháy cho nhà siêu cao tầng cho nên, ngoài trang thiết bị tựứng cứu ở các chung cư cao tầng hiện nay, khi xảy ra cháy nổ, quan trọngnhất là sự bình tĩnh của người dân để tự cứu lấy chính mình và việc cảnh báochính xác là rất quan trọng Xuất phát từ thực tế như trên nên em quyết định
lựa chọn đề tài :Thiết kế hệ thống báo cháy tự động dùng vi điều khiểndưới sự hướng dẫn của thầy giáo PGS.TS Nguyễn Hữu Trung Luận
văn bao gồm 3 chương như sau:
Chương 1: Tổng quan về hệ thống báo cháy tự động
Chương 2: Thiết kế hệ thống báo cháy
Chương 3: Kết quả thực nghiệm
Do thời gian và trình độ còn hạn chế nên luận văn không tránh khỏi những saisót Em rất mong sự đóng góp ý kiến của các thầy cô giáo, bạn bè đồngnghiệp để bản luận văn của em được hoàn chỉnh hơn
Em xin bày tỏ lòng biết ơn sâu sắc đến thầy giáo PGS.TS Nguyễn Hữu Trung
đã tận tình hướng dẫn em trong quá trình làm luận văn để em đạt được kếtquả tốt nhất
Trang 8Lý do chọn đề tài
- Trong cuộc sống của chúng ta luôn tồn tại những khu vực dễ cháy, nênviệc lặp đặt hệ thống báo cháy có tầm quan trọng Nó giúp chúng taphát hiện nhanh chóng, chữa cháy kịp thời kỳ đầu của vụ cháy đem lại
sự bình yên cho mọi người , bảo vệ tài sản cho nhân dân , nhà máyxưởng sản xuất…Xuất phát từ ý tưởng đó tác giả chọn đề tài “ Thiết kế
hệ thống báo cháy tự động vi điều khiển” với mong muốn sau khi thựchiện xong đề tài có thể đem ra ứng dụng thực tế
Nội dung nghiên cứu
- Tổng quan về hệ thống báo cháy
- Giới thiệu vi điều khiển ARM LPC1768
- Xây dựng phần cứng và phần mềm
Phương pháp nghiên cứu
Chia nhỏ đánh giá từng phần
Thử nghiệm thực tế
Trang 9CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG BÁO CHÁY TỰ ĐỘNG 1.1 KHÁI QUÁT
Hệ thống báo cháy tự động là hệ thống thiết bị tự động phát hiện và thông báođịa điểm cháy (theo tiêu chuẩn Việt Nam TCVN 5738-2001)
Hệ thống báo cháy tự động bao gồm:
- Trung tâm báo cháy
- Các đầu báo cháy, (tổ hợp chuông, đèn, nút ấn)
- Các thiết bị ngoại vi khác
1.2 NHIỆM VỤ CỦA MẠCH BÁO CHÁY
Tự động phát hiện ra cháy một cách nhanh chóng, chính xác và kịp thời trongvùnghệ thống đang bảo vệ
Tự động phát ra các tín hiệu báo động, chỉ thị và các tín hiệu điều khiển cácthiết bị ngoại vi của hệ thống báo cháy tự động nhằm thực hiện một nhiệm vụ
cụ thể nào đó
Đặc biệt, với hệ thống báo cháy tự động sử dụng đầu báo cháy khói thì nó còn
có nhiệm vụ quan trọng hơn là “cảnh báo”, tức là phát hiện và thông báo sựsắp cháy, sự cháy âm ỉ chưa có ngọn lửa
1.3 PHÂN LOẠI HỆ THỐNG BÁO CHÁY TỰ ĐỘNG
Phân loại hệ thống báo cháy tự động theo nguyên lý làm việc của đầu báocháy có:
- Hệ thống báo cháy tự động sử dụng đầu báo cháy khói: là hệ thống báo cháy
tự động làm việc dựa vào nguyên lý làm việc của đầu báo cháy khói Hệthống này chủ yếu phát hiện ra sự gia tăng nồng độ khói ở trong khu vực bảovệ
Trang 10- Hệ thống báo cháy tự động sử dụng đầu báo cháy nhiệt: là hệ thống báo
cháy tự động làm việc dựa theo nguyên lý làm việc của đầu báo cháy nhiệt
Hệ thống này chủ yếu phát hiện ra sự thay đổi nhiệt độ ở trong khu vực bảovệ
- Hệ thống báo cháy tự động sử dụng đầu báo cháy ánh sáng (lửa): làm việc
dựa vào nguyên lý làm việc của đầu báo cháy lửa Hệ thống này chủ yếu pháthiện ra nồng độ tăng cường ánh sáng của ngọn lửa trong khu vực bảo vệ
- Hệ thống báo cháy tự động sử dụng đầu báo cháy hỗn hợp: là hệ thống làm
việc dựa trên nguyên lý làm việc của đầu báo cháy hỗn hợp như: đầu báo cháynhiệt và khói; đầu báo cháy nhiệt và lửa Hệ thống này chủ yếu phát hiện ra sựthay đổi các yếu tố môi trường trong khu vực bảo vệ
* Phân loại hệ thống báo cháy tự động theo đặc điểm kỹ thuật của hệ thốngbáo cháy
- Hệ thống báo cháy tự động theo vùng (hệ thống báo cháy tự động thường) : (hệ thống báo cháy tự động thông thường - Couventional fire alarm system): là hệ thống báo cháy tự động có chức năng báo cháy tới một khu vực,
một địa điểm (có thể có một hoặc nhiều đầu báo cháy) Diện tích bảo vệ của
một khu vực có thể từ vài chục đến 2000 m2 (tuỳ thuộc đặc điểm khu vực đó).
- Hệ thống báo cháy tự động theo địa chỉ: (Addressable fire alarm system) : là
hệ thống báo cháy tự động có khả năng báo cháy chính xác đến từng vị trí
từng đầu báo riêng biệt (từng địa chỉ cụ thể) Diện tích bảo vệ của một địa chỉ báo cháy chỉ giới hạn trong khoảng vài chục mét vuông (tuỳ thuộc vào từng
loại đầu báo cháy) Hệ thống báo cháy tự động thông minh: Với sự phát triển
khoa học công nghệ, hệ thống báo cháy tự động theo địa chỉ đã phát triển
thành hệ thống báo cháy thông minh (Intelligent fire alarm system) Đây là hệ
thống báo cháy tự động ngoài chức năng báo cháy thông thường theo địa chỉ,
nó còn có thể đo được một số thông số về môi trường của khu vực nơi lắp đặt
Trang 11đầu báo cháy như nhiệt độ, nồng độ khói,… và có thể thay đổi được ngưỡngtác động của đầu báo cháy theo yêu cầu của nhà thiết kế và lắp đặt
1.4 CÁC THÀNH PHẦN CƠ BẢN CỦA HỆ THỐNG BÁO CHÁY TỰ ĐỘNG
1.4.1 Trung tâm báo cháy (Tủ trung tâm , Trung tâm điều khiển, Control
Panel) : Đây là thiết bị quan trọng nhất trong hệ thống và quyết định chấtlượng của hệ thống Là thiết bị cung cấp năng lượng cho các đầu báo cháy tựđộng.Có khả năng nhận và xử lý các tín hiệu báo cháy từ các đầu báo cháy tựđộng hoặc các tín hiệu sự cố kỹ thuật, hiển thị các thông tin về hệ thống vàphát lệnh báo động, chỉ thị nơi xảy ra cháy.Trong trường hợp cần thiết có thểtruyền tín hiệu đến nơi nhận tin báo cháy.Có khả năng tự kiểm tra hoạt độngbình thường của hệ thống, chỉ thị sự cố của hệ thống như đứt dây, chập mạch
1.4.2 Thiết bị đầu vào
Là thiết bị nhạy cảm với các hiện tượng của sự cháy (sự tăng nhiệt, tỏa khói,phát sáng, phát lửa), và có nhiệm vụ nhận thông tin nơi xảy ra sự cháy vàtruyền tín hiệu đến trung tâm báo cháy
Đầu báo
Đầu báo khói (Smoke Detector):
Là thiết bị giám sát trực tiếp, phát hiện ra dấu hiệu khói để chuyển các tínhiệu khói về trung tâm xử lý Thời gian các đầu báo khói nhận và truyềnthông tin đến trung tâm báo cháy không quá 30s.Mật độ môi trường từ 15%đến 20%.Nếu nồng độ của khói trong môi trường tại khu vực vượt quangưỡng cho phép (10% -20%) thì thiết bị sẽ phát tín hiệu báo động về trungtâm để xử lý
Trang 12- Các đầu báo khói thường được bố trí tại các phòng làm việc, hội trường, cáckho quỹ, các khu vực có mật độ không gian kín và các chất gây cháy thườngtạo khói trước.
Đầu báo khói được chia làm 2 loại chính như sau :
Đầu báo khói dạng điểm: Được lắp tại các khu vực mà phạm vi giám sát
nhỏ, trần nhà thấp (văn phòng, chung cư …)
a Đầu báo khói Ion : Thiết bị tạo ra các dòng ion dương và ion âm chuyểnđộng, khi có khói, khói sẽ làm cản trở chuyển động của các ion dương và ion
âm, từ đó thiết bị sẽ gởi tín hiệu báo cháy về trung tâm xử lý
b Đầu báo khói Quang (photo): Thiết bị bao gồm một cặp đầu báo (một đầuphát tín hiệu, một đầu thu tín hiệu) bố trí đối nhau, khi có khói xen giữa 2 đầubáo, khói sẽ làm cản trở đường truyền tín hiệu giữa 2 đầu báo, từ đó đầu báo
sẽ gởi tín hiệu báo cháy về trung tâm xử lý
Đầu báo khói dạng Beam:
Gồm một cặp thiết bị được lắp ở hai đầu của khu vực cần giám sát Thiết bịchiếu phát chiếu một chùm tia hồng ngoại, qua khu vực thuộc phạm vi giámsát rồi tới một thiết bị nhận có chứa một tế bào cảm quang có nhiệm vụ theodõi sự cân bằng tín hiệu của chùm tia sáng Đầu báo này hoạt động trênnguyên lý làm mờ ánh sáng đối nghịch với nguyên lý tán xạ ánh sáng (cảmứng khói ngay tại đầu báo)
- Đầu báo khói loại Beam có tầm hoạt động rất rộng (15m x 100m), sử dụngthích hợp tại những khu vực mà các loại đầu báo khói quang điện tỏ ra khôngthích hợp, chẳng hạn như tại những nơi mà đám khói tiên liệu là sẽ có khói
- Hơn nữa đầu báo loại Beam có thể đương đầu với tình trạng khắc nghiệt vềnhiệt độ, bụi bặm, độ ẩm quá mức, nhiều tạp chất,… Do đầu báo dạng Beam
Trang 13có thể đặt đằng sau cửa sổ có kiếng trong, nên rất dễ lau chùi, bảo quản.
- Đầu báo dạng Beam thường được lắp trong khu vực có phạm vi giám sátlớn, trần nhà quá cao không thể lắp các đầu báo điểm (các nhà xưởng, …)
Đầu báo nhiệt: (Heat Detector)
- Đầu báo nhiệt là loại dùng để dò nhiệt độ của môi trường trong phạm vi bảo
vệ , khi nhiệt độ của môi trường không thỏa mãn những quy định của các đầubáo nhiệt do nhà sản xuất quy định, thì nó sẽ phát tín hiệu báo động gởi vềtrung tâm xử lý
- Các đầu báo nhiệt được lắp đặt ở những nơi không thể lắp được đầu báokhói (nơi chứa thiết bị máy móc, Garage, các buồng điện động lực, nhà máy,nhà bếp,…)
Đầu báo nhiệt cố định
Là loại đầu báo bị kích hoạt và phát tín hiệu báo động khi cảm ứng nhiệt độtrong bầu không khí chung quanh đầu báo tăng lên ở mức độ nhà sản xuất quyđịnh (57o, 70o, 100o…)
Đầu báo nhiệt gia tăng
Là loại đầu báo bị kích hoạt và phát tín hiệu báo động khi cảm ứng hiện tượngbầu không khí chung quanh đầu báo gia tăng nhiệt độ đột ngột khoảng 9oC /phút
Đầu báo ga (Gas Detector)
- Là thiết bị trực tiếp giám sát, phát hiện dấu hiệu có gas khi tỉ lệ gas tập trungvượt quá mức 0.503% (Propane/ Butane) và gởi tín hiệu báo động về trung
- Các đầu báo gas thường được bố trí trong khoảng gần nơi có gas như cácphòng vô gas hay các kho chứa gas Các đầu báo gas được lắp trên tường,
Trang 14cách sàn nhà từ 10-16cm, tuyệt đối không được phép lắp đặt dưới sàn nhà.
Đầu báo lửa (Flame Detector)
- Là thiết bị cảm ứng các tia cực tím phát ra từ ngọn lửa, nhận tín hiệu, rồi gởitín hiệu báo động về trung tâm xử lý khi phát hiện lửa
- Được sử dụng chủ yếu ở các nơi xét thấy có sự nguy hiểm cao độ, những nơi
mà ánh sáng của ngọn lửa là dấu hiệu tiêu biểu cho sự cháy (ví dụ như khochứa chất lỏng dễ cháy)
- Đầu báo lửa rất nhạy cảm đối với các tia cực tím và đã được nghiên cứu tỉ
mỉ để tránh tình trạng báo giả Đầu dò chỉ phát tín hiệu báo động về trung tâmbáo cháy khi có 2 xung cảm ứng tia cực tím sau 2 khoảng thời gian, mỗi thời
kỳ là 5s
Công tắc khẩn: (Emergency breaker, nút nhấn khẩn): Được lắp đặt tại những
nơi dễ thấy của hành lang các cầu thang để sử dụng khi cần thiết Thiết bị nàycho phép người sử dụng chủ động truyền thông tin báo cháy bằng cách nhấnhoặc kéo vào công tắc khẩn, báo động khẩn cấp cho mọi người đang hiện diệntrong khu vực đó được biết để có biện pháp xử lý hỏa hoạn và di chuyển rakhỏi khu vực nguy hiểm bằng các lối thoát hiểm Gồm có các loại công tắckhẩn như sau:
Trang 15Bảng hiện thị phụ
Hiển thị thông tin các khu vực xảy ra sự cố từ trung tâm báo cháy truyền đến,giúp nhận biết tình trạng nơi xảy ra sự cố để xử lý kịp thời
Chuông báo cháy
Được lắp đặt tại phòng bảo vệ, các phòng có nhân viên trực ban, hành lang,cầu thang hoặc những nơi đông người qua lại nhằm thông báo cho nhữngngười xung quanh có thể biết được sự cố đang xảy ra để có phương án xử lý,
di tản kịp thời
Khi xảy ra sự cố hỏa hoạn, chuông báo động sẽ phát tín hiệu báo động giúpcho nhân viên bảo vệ nhận biết và thông qua thiết bị theo dõi sự cố hỏa hoạn(bảng hiển thị phụ) sẽ biết khu vực nào xảy ra hỏa hoạn, từ đó thông báo kịpthời đến các nhân viên có trách nhiệm phòng cháy chữa cháy khắc phục sự cốhoặc có biện pháp xử lý thích hợp
Còi báo cháy
Có tính năng và vị trí lắp đặt giống như chuông báo cháy, tuy nhiên còi được
sử dụng khi khoảng cách giữa nơi phát thông báo đến nơi cần nhận thông báobáo động quá xa
Đèn
Có công dụng phát tín hiệu báo động, mỗi lọai đèn có chức năng khác nhau
và được lắp đặt ở tại các vị trí thích hợp để phát huy tối đa tính năng của thiết
bị này Gồm có các lọai đèn:
Đèn chỉ lối thoát hiểm (Exit Light)
Được đặt gần các cầu thang của mỗi tầng lầu, để chỉ lối thoát hiểm trongtrường hợp có cháy Tự động chiếu sáng trong trường hợp mất nguồn AC
Đèn báo cháy (Corridor Lamp)
Trang 16Được đặt bên trên công tắc khẩn của mỗi tầng Đèn báo cháy sẽ sáng lên mỗikhi công tắc khẩn hoạt động, đồng thời đây cũng là đèn báo khẩn cấp chonhững người hiện diện trong tòa nhà được biết Điều này có ý nghĩa quantrọng, vì trong lúc bối rối do sự cố cháy, thì người sử dụng cần phân biệt rõràng công tác khẩn nào còn hiệu lực được kích hoạt máy bơm chữa cháy.
Đèn báo phòng (Room Lamp)
Được lắp đặt trước cửa mỗi phòng giúp nhận biết phòng nào có sự cố mộtcách dễ dàng và nhanh chóng
Đèn chiếu sáng trong trường hợp khẩn (Emergency Light):
Khi có báo cháy, thao tác đầu tiên là phải cúp điện Bây giờ đèn chiếu sángnày sẽ tự động bật sáng (nhờ có bình điện dự phòng battery), nó giúp cho mọingười dễ dàng tìm đường thoát hiểm, hoặc giúp cho các nhân viên có tráchnhiệm nhanh chóng thi hành phận sự Hoặc trong trường hợp mất điện độtngột do có sự cố về điện, đèn Emergency cũng tỏ ra hữu hiệu
Bộ quay số điện thoại tự động
Được lắp trong trung tâm báo cháy, khi nhận được thông tin báo cháy từ trungtâm thiết bị sẽ tự động quay số điện thoại đã được cài đặt trước để thông báođến người chịu trách nhiệm chính.Thông thường quay được từ 3 tới hơn 10số
Bàn phím (Keypad, Bàn phím điều khiển):
Là phương tiện để điều khiển mọi hoạt động của hệ thống Qua bàn phím, bạn
có thể điều khiển hoạt động theo ý muốn một cách dễ dàng, như nhập lệnhđưa hệ thống vào chế độ giám sát, hoặc có thể ngưng chế độ giám sát một sốkhu vực trong toàn bộ hệ thống, hoặc có thể lập trình để hệ thống tự động
Trang 17chuyển sang chế độ giám sát vào một thời gian nhất định trong ngày đối vớimột số khu vực nào đó
6502, vì vậy việc tạo ra một chip như vậy là một bước tiến đáng kể của công
ty này.Nhóm thiết kế hoàn thành việc phát triển mẫu gọi là ARM1 vào năm
1985, và vào năm sau, nhóm hoàn thành sản phẩm ‘’thực’’ gọi là ARM2.ARM2 có tuyến dữ liệu 32-bit, không gian địa chỉ 26-bit tức cho phép quản lýđến 64 Mbyte địa chỉ và 16 thanh ghi 32-bit Một trong những thanh ghi nàyđóng vai trò là bộ đếm chương trình với 6 bit cao nhất và 2 bit thấp nhất lưugiữ các cờ trạng thái của bộ vi xử lý Có thể nói ARM2 là bộ vi xử lý 32-bitkhả dụng đơn giản nhất trên thế giới, với chỉ gồm 30.000 transistor (so với bộ
vi xử lý lâu hơn bốn năm của Motorola là 68000 với khoảng 68.000transistor) Sự đơn giản như vậy có được nhờ ARM không có vi chương trình(mà chiếm khoảng ¼ đến 1/3 trong 68000) và cũng giống như hầu hết cácCPU vào thời đó, không hề chứa cache Sự đơn giản này đưa đến đặc điểmtiêu thụ công suất thấp của ARM, mà lại có tính năng tốt hơn cả 286 Thế hệ
Trang 18sau, ARM3, được tạo ra với 4KB cache và có chức năng được cải thiện tốthơn nữa.
Vào những năm cuối thập niên 80, hãng máy tính Apple Computer bắt đầuhợp tác với Acorn để phát triển các thế hệ lõi ARM mới.Công việc này trởnên quan trọng đến nỗi Acorn nâng nhóm thiết kế trở thành một công ty mớigọi là Advanced RISC Machines Vì lý do đó bạn thường được giải thíchARM là chữ viết tắt của Advanced RISC Machines thay vì Acorn RISCMachine Advanced RISC Machines trở thành công ty ARM Limited khicông ty này được đưa ra sàn chứng khoán London và NASDAQ năm 1998.Kết quả sự hợp tác này là ARM6 Mẫu đầu tiên được công bố vào năm 1991
và Apple đã sử dụng bộ vi xử lý ARM 610 dựa trên ARM6 làm cơ sở choPDA hiệu Apple Newton Vào năm 1994, Acorn dùng ARM 610 làm CPUtrong các máy vi tính RiscPC của họ
Trải qua nhiều thế hệ nhưng lõi ARM gần như không thay đổi kích thước.ARM2 có 30.000 transistors trong khi ARM6 chỉ tăng lên đến 35.000 Ýtưởng của nhà sản xuất lõi ARM là sao cho người sử dụng có thể ghép lõiARM với một số bộ phận tùy chọn nào đó để tạo ra một CPU hoàn chỉnh, mộtloại CPU mà có thể tạo ra trên những nhà máy sản xuất bán dẫn cũ và vẫn tiếptục tạo ra được sản phẩm với nhiều tính năng mà giá thành vẫn thấp
Thế hệ thành công nhất có lẽ là ARM7TDMI với hàng trăm triệu lõi được sửdụng trong các máy điện thoại di động, hệ thống video game cầm tay, và SegaDreamcast Trong khi công ty ARM chỉ tập trung vào việc bán lõi IP, cũng cómột số giấy phép tạo ra bộ vi điều khiển dựa trên lõi này
Dreamcast đưa ra bộ vi xử lý SH4 mà chỉ mượn một số ý tưởng từ ARM (tiêután công suất thấp, tập lệnh gọn …) nhưng phần còn lại thì khác với ARM.Dreamcast cũng tạo ra một chip xử lý âm thanh được thiết kế bởi Yamaha với
Trang 19lõi ARM7 Bên cạnh đó, Gameboy Advance của Nintendo, dùngARM7TDMI ở tần số 16,78 MHz.
Hãng DEC cũng bán giấy phép về lõi cấu trúc ARM (đôi khi chúng ta có thể
bị nhầm lẫn vì họ cũng sản xuất ra DEC Alpha) và sản xuất ra thế hệ StrongARM.Hoạt động ở tần số 233 MHz mà CPU này chỉ tiêu tốn khoảng 1 wattcông suất (những đời sau còn tiêu tốn ít công suất hơn nữa) Sau những kiệntụng, Intel cũng được chấp nhận sản xuất ARM và Intel đã nắm lấy cơ hội này
để bổ sung vào thế hệ già cỗi i960 của họ bằng Strong ARM Từ đó, Intel đãphát triển cho chính họ một sản phẩm chức năng cao gọi tên là Xscale
1.5.2 Giới thiệu về ARM
Cấu trúc ARM (viết tắt từ tên gốc là Advanced RISC Machine) là một loạicấu trúc vi xử lý 32 bit và 64 bit kiểu RISC được sử dụng rộng rãi trong cácthiết kế nhúng Do có đặc điểm tiết kiệm năng lượng, các bộ CPU ARMchiếm ưu thế trong các sản phẩm điện tử di động, mà với các sản phẩm nàyviệc tiêu tán công suất thấp là một mục tiêu thiết kế quan trọng hàng đầu.Ngày nay, hơn 75% CPU nhúng 32-bit là thuộc họ ARM, điều này khiếnARM trở thành cấu trúc 32-bit được sản xuất nhiều nhất trên thế giới CPUARM được tìm thấy khắp nơi trong các sản phẩm thương mại điện tử, từ thiết
bị cầm tay (PDA, điện thoại di động, máy đa phương tiện, máy trò chơi cầmtay, và máy tính cầm tay) cho đến các thiết bị ngoại vi máy tính (ổ đĩa cứng,
bộ định tuyến để bàn.) Một nhánh nổi tiếng của họ ARM là các vi xử lýXscale của Intel
Ưu điểm so với chip khác
Tốc độ nhanh (Tốc độ 100 Mhz) Độ ổn định cao
Trang 20Hiệu suất sử dụng năng lượng tốt hơn nhờ sự khác biệt trong kiến trúc nềntảng
Kiến trúc RISC của ARM đặc biệt ưu việt trong việc sử dụng năng lượng Nómất ít năng lượng hơn để tính ra được đâu là điểm cuối của một lệnh và điểmkhởi đầu của lệnh tiếp theo Với RISC, mỗi lệnh chỉ có giá trị 4 byte và chip
xử lý biết chắc rằng cứ mỗi 4 byte, nó sẽ có lệnh mới Như thế, nó không cầnphải mất thời gian tính toán như đề cập ở trên
Điều này cũng cho phép các nhà sản xuất tạo ra lõi ARM nhỏ gọn hơn so vớilõi x86 Cùng với việc tiết kiệm năng lượng, không có gì lạ khi dòng chíp này
đã và đang trở thành lựa chọn lý tưởng cho thiết bị di động hiện nay
Nền tảng ARM vẫn có một lợi thế khi cho phép các nhà sản xuất tối ưu hoá
và thiết kế các sản phẩm chip của riêng mình với những tiêu chí đặc biệt như
sử dụng lõi đồ hoạ điện năng thấp, bổ sung các loại cảm biến, trang bị modemviễn thông theo ý muốn, bổ sung bộ đồng xử lý… là những điều khó có thểlàm được với chip Intel Việc tuỳ biến linh hoạt chip xử lý cũng là lý do khiếnnhà sản xuất sẽ vẫn gắn bó với việc tự chế tạo các chip A của riêng mình dựatrên kiến trúc ARM
1.5.3 Giới thiệu về ARM CORTEX
Bộ xử lý Cortex là thế hệ lõi nhúng kế tiếp từ ARM Cortex kế thừa các ưuđiểm từ các bộ xử lí ARM trước đó, nó là một lõi hoàn chỉnh, bao gồm bộ xử
lý trung tâm Cortex và một hệ thống các thiết bị ngoại vi xung quanh, Cortexcung cấp phần xử lý trung tâm của một hệ thống nhúng Để đáp ứng yêu cầukhắt khe và đa dạng của các hệ thống nhúng, bộ xử lý Cortex gồm 3 nhánh,được biểu hiện bằng các ký tự sau tên Cortex như sau:
Trang 21 Cấu hình A cho các ứng dụng tinh vi, yêu cầu cao chạy trên các hệ điềuhành và các ứng dụng phức tạp như Linux, Android…Hỗ trợ tập lệnhARM, Thumb và Thumb-2.
Cấu hình R : bộ xử lý dành cho các hệ thống đòi hỏi khắc khe về tínhthời gian thực Hỗ trợ các tập lệnh ARM, Thumb, Thumb-2
Cấu hình M : bộ xử lý dành cho dòng vi điều khiển, được tối ưu hóacho các ứng dụng nhạy cảm về chi phí Chỉ hỗ trợ tập lệnh Thumb-2
Con số nằm cuối tên Cortex cho biết mức độ hiệu suất tương đối, với 1 làthấp nhất và 8 là cao nhất Hiện nay dòng Cortex –M có mức hiệu suất caonhất là 3
Bộ vi xử lý Cortex-M3 là bộ vi xử lý ARM đầu tiên dựa trên kiến trúcARMv7-M và được thiết kế đặc biệt để đạt được hiệu suất cao trong cácứng dụng nhúng cần tiết kiệm năng lượng và chi phí Để đạt được hiệu suấtcao hơn, bộ vi xử lý có thể làm việc nhiều hơn hoặc làm việc thông minhhơn Đẩy tần số hoạt động cao hơn có thể làm tăng hiệu suất nhưng cũng đikèm với việc tiêu thụ năng lượng nhiều hơn và việc thiết kế cũng phức tạphơn Nói cách khác, cùng thực hiện những tác vụ đó nhưng bằng cách nângcao hiệu quả tính toán trong khi vẫn hoạt động ở tần số thấp sẽ dẫn đến sựđơn giản hóa trong việc thiết kế và ít tốn năng lượng hơn
Trang 221.5.3.1 ARM Cortex-M3
1.5.3.1.1 Sơ đồ khối ARM
Hình 1.1.S ơ đồ khối ARM đồ khối ARM kh i ARMối ARM
1.5.3.1.2 Kiến trúc hệ thống ARM
Các phiên bản kiến trúc ARM
Bộ xử lý Cortex-M3 dựa trên kiến trúc ARMv7 M và có khả năng thực hiệntập lệnh Thumb-2
Trang 23Hình 1.2 Các phiên b n ki n trúc c a lõi ARMản kiến trúc của lõi ARM ến trúc của lõi ARM ủa lõi ARM
Bộ xử lý Cortex và đơn vị xử lý trung tâm Cortex
Thuật ngữ bộ xử lí Cortex (Cortex processor) và đơn vị xử lí trung tâm Cortex(Cortex CPU) sẽ được sử dụng để phân biệt giữa nhúng lõi Cortex hoàn chỉnh
và bộ xử lí trung tâm RISC nội (internal RISC CPU)
Đơn vị xử lý trung tâm Cortex (Cortex CPU)
Trung tâm của bộ xử lý Cortex là CPU RISC 32-bit CPU này có một phiênbản được đơn giản hóa từ mô hình lập trình (programmer’s model) củaARM7/9, nhưng có một tập lệnh phong phú hơn với sự hỗ trợ tốt cho phéptoán số nguyên, khả năng thao tác với bit tốt hơn và khả năng đáp ứng thờigian thực tốt hơn
Kiến trúc đường ống (Pipline)
CPU Cortex có thể sử thực thi hầu hết các lệnh trong một chu kỳ lớn Giốngnhư CPU của ARM7 và ARM9, việc thực thi này đạt được với một đường
Trang 24ống ba tầng Tuy nhiên Cortex-M3 khả năng dự đoán việc rẽ nhánh để giảmthiểu số lần làm rỗng(flush) đường ống
Hình 1.3 Ki n trúc ến trúc của lõi ARM đường ống của ARM Cortex-M3ng ng c a ARM Cortex-M3ối ARM ủa lõi ARM
Trong khi một lệnh đang được thực thi, thì lệnh tiếp theo sẽ được giải mã vàlệnh tiếp theo nữa sẽ được lấy về từ bộ nhớ Phương thức hoạt động này sẽphát huy hiệu quả tối đa cho mã tuyến tính (linear code), nhưng khi gặp phảimột rẽ nhánh (ví dụ cấu trúc lệnh if…else) thì các đường ống phải được làmrỗng (flush) và làm đầy (refill) trước khi mã có thể tiếp tục thực thi TrongCPU Cortex có đường ống ba tầng được tăng cường khả năng dự đoán rẽnhánh, có nghĩa rằng khi một lệnh rẽ nhánh có điều kiện xuất hiện một thaotác lấy lệnh dựa trên suy đoàn được thực hiện, do đó lệnh rẽ nhánh có điềukiện sẵn sàng để thực hiện mà không cần chịu thêm một thao tác nào cả.Trường hợp xấu nhất khi gặp phải một rẽ gián tiếp, khi đó không thể hiện việclấy lệnh dựa trên việc suy đoán, do đó phải làm rỗng đường ống dẫn Kiếntrúc đường ống là chìa khóa dẫn đến hiệu suất tổng thể của CPU Cortex, vìvậy không cần bất kì cân nhắc, xem xét đặc biệt nào được thực hiện trong mãứng dụng
Trang 25Mô hình lập trình (Programmer’s model)
CPU Cortex là bộ xử lý dựa trên kiến trúc RISC, do đó hỗ trợ kiến nạp và lưutrữ (load and store architecture).Để thực hiện lệnh xử lý dữ liệu, các toánhạng phải được nạp vào một tập thanh ghi trung tâm, các phép tính dữ liệuphải được thực hiện trên các thanh ghi này và kết quả sau đó được lưu lạitrong bộ nhớ
Hình 1.4 : Ki n trúc load v store c a ARM Cortex-M3ến trúc của lõi ARM à store của ARM Cortex-M3 ủa lõi ARM
Do vậy tất cả các hoạt động của chương trình tập trung xung quanh tập thanhghi của CPU Tập thanh ghi này bao gồm mười sáu thanh ghi 32-bit Cácthanh ghi R0-R12 là các thanh ghi đơn giản, có thể được dùng để chứa cácbiến của chương trình Các thanh ghi R13-R15 có chức năng đặc biệt trongCPU Cortex Thanh ghi R1 3 được dùng như là con trỏ ngăn xếp (stackpointer) Thanh ghi này được chia thành nhóm (banked), cho phép CPUCortex có hai chế độ hoạt động, mỗi chế độ có không gian ngăn xếp riêngbiệt Đặc điểm này thường được hệ điều hành thời gian thực (Real TimeOperating System) sử dụng để có thể chạy mã hệ thống của mình trong mộtchế độ bảo vệ.Trong CPU Cortex có hai ngăn xếp được gọi là main stack vàprocess stack Thanh ghi R14 tiếp theo được gọi là thanh ghi liên kết (linkregister) Thanh ghi này được sử dụng để lưu trữ các địa chỉ trở về khi mộtcuộc gọi thủ tục (call a procedure) được thực hiện.Điều này cho phép CPUCortex thực hiện rất nhanh việc nhập và thoát khỏi một thủ tục (fast entry and
Trang 26exit to a procedure) Nếu chương trình của bạn gọi sâu vào nhiều lớp chươngtrình con, trình biên dịch sẽ tự động lưu R14 trên ngăn xếp (stack) Thanh ghicuối cùng R15 là bộ đếm chương trình (Program Counter); nó là một phầncủa tập thanh ghi trung tâm, nó có thể được đọc và thao tác giống như bất kỳthanh ghi khác.
Hình 1.5 : Mô hình l p trình c a ARM Cortex-M3ập trình của ARM Cortex-M3 ủa lõi ARM
Thanh ghi XPSR
Ngoài tập thanh ghi trung tâm còn có một thanh ghi riêng biệt được gọi làthanh ghi trạng thái chương trình (Program Status Register).Nó không phải làmột phần của tập thanh ghi chính và chỉ có thể truy cập thông qua hai lệnhchuyên dụng.XPSR chứa một số các vùng chức năng quan trọng ảnh hưởngđến việc thực thi của CPU Cortex
Trang 27Hình 1.6 : Thanh ghi tr ng thái chạng thái chương trình của CPU Cortex ươ đồ khối ARMng trình c a CPU Cortexủa lõi ARM
Thanh ghi xPSR cũng có thể được truy cập thông qua ba biệt hiệu đặc biệtcho phép truy cập vào các bit trong xPSR Năm bit đầu là những cờ mã điềukiện và được gán biệt hiệu (aliased) như thanh ghi trạng thái chương trình ứngdụng Bốn cờ N, Z, C, V (Negative, Zero, Carry và Overflow) sẽ được thiếtlập và xóa tùy thuộc vào kết quả của một lệnh xử lý dữ liệu Bit Q là được sửdụng bởi các lệnh toán học DPS để chỉ ra rằng một biến đã đạt giá trị tối đahoặc giá trị tối thiểu của nó Giống như tập lệnh ARM 32- bit, các lệnhThumb-2 chỉ được thực hiện nếu mã điều kiện của lệnh phù hợp với trạng tháicủa các cờ trong thanh ghi trạng thái chương trình ứng dụng Nếu mã điềukiện của lệnh không phù hợp, thì lệnh đi ngang qua đường ống như là mộtlệnh NOP.Điều này đảm bảo rằng các lệnh đi qua đường ống một cách trơntru và giảm thiểu làm rỗng đường ống Trong CPU Cortex, kỹ thuật này được
mở rộng với thanh ghi trạng thái chương trình thực thi Đây là một biệt hiệucủa bit các bit từ 8-26 của xPSR Nó gồm ba trường: trường "If then", trường
"interrupt continuable instruction " và trường lệnh Thumb Lệnh Thumb-2 cómột phương pháp hiệu quả khi thực hiện các khối lệnh nhỏ 'if then'.Khi mộtkiểm tra điều kiện là đúng, nó có thể thiết lập một giá trị trong vùng IT, báocho CPU thực thi lên bốn lệnh.Nếu việc kiểm tra điều kiện là sai, các lệnh này
sẽ đi ngang qua đường ống như là một lệnh NOP Vì vậy, một dòng lệnh Cđiển hình sẽ được mã hoá như sau:
Trang 28ADDr0,#2 ;add 2
Hầu hết các lệnh Thumb-2 thực thi trong một chu kì đơn, một số khác (nhưlệnh load và store) cần nhiều chu kỳ Vì vậy, để CPU Cortex có thể có mộtthời gian đáp ứng ngắt xác định, các lệnh cần nhiều chu kì thực thi phải đượcngắt Khi một lệnh được chấm dứt sớm, vùng ICI (Interrupt ContinuableInstruction ) trong thanh ghi xPSR sẽ lưu lại số các thanh ghi tiếp theo đượcdùng trong lệnh load hoặc store nhiều dữ liệu cùng lúc Vì vậy, một khi ngắtđược phục vụ, lệnh load/store bị ngắt trước đó có thể tiếp tục được thựchiện.Trường Thumb cuối cùng được thừa hưởng từ phiên bản CPU ARMtrước đó Trường này chỉ ra nếu tập lệnh ARM hoặc Thumb đang được thựchiện bởi CPU Trong Cortex-M3 bit này luôn luôn được thiết lập mức 1 (tức
là tập lệnh đang được thực thi là tập lệnh Thumb) Cuối cùng, trường trạngthái ngắt chứa thông tin về yêu cầu ngắt đã được ưu tiên trước (pre-empted)
Các chế độ hoạt động của CPU
Bộ vi xử lý Cortex được thiết kế với mục tiêu giảm số bóng bán dẫn,nhanh chóng và dễ sử dụng lõi vi điều khiển, nó có được thiết kế để hỗ trợviệc sử dụng hệ điều hành thực hành thời gian Bộ xử lý Cortex có hai chế độhoạt động : chế độ Thread và chế độ Handler CPU sẽ chạy ở chế độ Treadtrong khi nó đang thực thi ở chế độ nền không có ngắt xảy ra và sẽ chuyểnsang chế độ Handler khi nó đang thực thi ở chế độ không có ngắt xảy ra và sẽchuyển sang chế độ Handler khi nó đang thực thi mã trong các ngắt đặc biệt(exceptions) Ngoài ra, CPU Cortex có thể thực thi mã trong chế độ đặc quyềnhoặc không đặc quyền (Privileged or non-privileged mode).Trong chế độ đặcquyền, CPU có quyền truy cập tất cả các lệnh Trong chế độ không có đặcquyền, một số lệnh bị cấm truy cập ( như lệnh MRS và MSR cho phép truycập vào xPSR và các trường của nó) Ngoài ra, việc truy cập các thanh ghi
Trang 29điều khiển hệ thống trong bộ vi xử lý Cortex cũng bị cấm Cách sử dụng ngănsếp (stack) cũng có thể được cấu hình.Ngăn xếp chính (main stack R-13) cóthể được sử dụng bởi cả hai chế độ Thread và Handler.Chế độ Handler có thểđược cấu hình để sử dụng ngăn xếp trong quá trình (process stack-R13 bankedresigter).
Trang 30Hình 1.7 : Mô hình ho t ạng thái chương trình của CPU Cortex động của chế độ Thread và Handlerng c a ch ủa lõi ARM ến trúc của lõi ARM động của chế độ Thread và Handler Thread v Handlerà store của ARM Cortex-M3
Sau khi reset, bộ xử lý Cortex sẽ chạy trong cấu hình phẳng Cả hai chế độThread và Handler được thực thi trong chế độ đặc quyền (privileged mode),do
đó, không có sự giới hạn nào về quyền truy cập vào bất kỳ tài nguyên của bộ
xử lý Cả hai chế độ Thread và Handler đều sử dụng ngăn xếp chính Để bắtđầu thực hiện, bộ xử lý Cortex đơn giản chỉ cần vector reset và địa chỉ bắt đầucủa ngăn xếp để được cấu hình trước khi bạn có thể bắt đầu thực thi chươngtrình ứng dụng C của bạn Tuy nhiên, nếu bạn đang sử dụng một hệ điều hànhthời gian thực (RTOS) hoặc đang phát triển một ứng dụng đòi hỏi khắc khe về
độ an toàn, chip có thể được sử dụng trong chế độ cấu hình nâng cao, nơi chế
độ Handler( exception và RTOS) chạy trong chế độ đặc quyền và sử dụngngăn xếp chính ( main stack), trong khi mã ứng dụng chạy trong chế độThread và không có đặc quyền truy cập và sử dụng ngăn xếp quá trình(process stack) Bằng cách này mã hệ thống và mã ứng dụng được phân vùng
và các lỗi trong mã ứng dụng sẽ không làm cho RTOS sụp đổ
Tập lệnh Thumb-2
Các CPU ARM7 và ARM9 có thể thực thi hai tập lệnh: ARM 32-bit vàThumb 16-bit Điều này cho phép người phát triển để tối ưu hoá chương trìnhcủa mình bằng cách lựa chọn tập lệnh nào được sử dụng cho thủ tục khácnhau: lệnh 32-bit để tăng tốc độ xử lí và lệnh 1 6-bit để nén mã chương trình.CPU Cortex được thiết kế để thực thi tập lệnh Thumb-2, là một sự pha trộncủa lệnh 16-bit và 32-bit Tập lệnh thumb-2 cải tiến 26% mật độ mã so vớitập lệnh ARM 32-bit và 25% hiệu suất so với tập lệnh Thumb 16-bit Tậplệnh Thumb2 có một số lệnh nhân được cải tiến, có thể thực hiện trong mộtchu kì đơn và khả năng thực hiện phép chia bằng phần cứng và chỉ mất từ 2-7chu kỳ
Trang 31Hình 1.8 : Đồ khối ARM ị biểu diễn hiệu năng của bộ xử lí Cortex ểu diễn hiệu năng của bộ xử lí Cortex th bi u di n hi u n ng c a b x lí Cortexễn hiệu năng của bộ xử lí Cortex ệu năng của bộ xử lí Cortex ăng của bộ xử lí Cortex ủa lõi ARM ộng của chế độ Thread và Handler ử lí Cortex
Điểm chuẩn bộ xử lý Cortex (Cortex processor benchmark) cho một mức độthực hiện là 1,25 DMIPS/MHz, cao hơn so với ARM7 (0.95 DMIPS/MHz vớitập lệnh ARM và 0.74 DMIPS/MHz với tập lệnh Thumb) và ARM9() Tậplệnh Thumb-2 có: các lệnh rẽ nhánh được cải tiến bao gồm việc kiểm tra và
so sánh, các khối thực thi có điều kiện if/then, thứ tự byte thao tác dữ liệu, cáclệnh trích byte và half word CPU Cortex có một tập lệnh phong phú đượcthiết kế đặc biệt cho trình biên dịch C Một chương trình Cortex-M3 điển hình
sẽ được viết hoàn toàn bằng ANSI C, với tối thiểu các từ khoá non-ANSI vàchỉ có bảng véc tơ ngắt được viết bằng Assembler
Bản đồ bộ nhớ (Memory Map)
Bộ xử lý Cortex-M3 là một lõi vi điều khiển được tiêu chuẩn hóa, như vậy nó
có một bản đồ bộ nhớ cũng được xác định Mặc dù có nhiều bus nội, bản đồ
Trang 32bộ nhớ này là một không gian địa chỉ 4 Gbyte tuyến tính Bản đồ bộ nhớ này
là chung cho tất cả các thiết bị dựa trên lõi Cortex
Hình 1.9 : B n ản kiến trúc của lõi ARM đồ khối ARM ộng của chế độ Thread và Handler b nhớ
Một Gbyte bộ nhớ đầu tiên được chia đều cho một vùng mã (code region) và
một vùng SRAM (SRAM region).Không gian mã được tối ưu hóa để thực thi
từ bus I-Code Tương tự, SRAM được nối đến bus D-Code Mặc dù mã có thểđược nạp và thực thi từ SRAM, các lệnh sẽ được lấy bằng cách sử dụng bus
hệ thống, vì vậy phải chịu thêm một trạng thái chờ ( an axtra wait state) Tức
là mã chạy trên SRAM sẽ chậm hơn so với từ bộ nhớ Flash trên chip chip) nằm trong vùng mã Vùng 0.5 Gbyte tiếp theo của bộ nhớ là vùng ngoại
(on-vi trên chip, tất cả thiết bị ngoại (on-vi được cung cấp bởi nhà sản xuất (on-vi điềukhiển sẽ được đặt tại vùng này Vùng 1 Mbyte đầu tiên gồm cả SRAM (màuvàng nhạt) và vùng ngoại vi (màu hồng nhạt) được định địa chỉ theo bit, sử
Trang 33dụng một kỹ thuật được gọi là dải bit (bit banding) Từ đó tất cả SRAM vàcác thiết bị ngoại vi người dung (user peripherals) trên STM32 được đặt tạivùng này, và tất cả các vị trí bộ nhớ của những vùng này trên STM32 đều cóthể thao tác theo world-wide hoặc bitwide Không gian địa chỉ 2 Gbyte tiếptheo được phân cho bộ nhớ ngoài- ánh xạ SRAM và thiết bị ngoại vi (exteralRAM và exteral Device) Vùng 0.5 Gbyte cuối cùng được phân cho các thiết
bị ngoại vi bên trong của bộ xử lý Cortex và một khu vực dành cho các cảitiến trong tương lai của nhà sản xuất chip cho bộ xử lý Cortex Tất cả cácthanh ghi của bộ xử lý Cortex được đặt ở vị trí cố định cho tất cả vi điềukhiển dựa trên lõi Cortex Điều này cho phép mã chương trình dễ dàng đượcchuyển giữa các biến thể STM32 khác nhau và các vi điều khiển dựa trên lõiCortex của các nhà sản xuất chip khác
Truy cập bộ nhớ không xếp hang (Unaligned Memory Access)
Tập lệnh ARM7 và ARM9 có khả năng truy cập các biến có dấu và không códấu theo kích thước byte,half word (thương là 2 byte) và word (thường là 4byte) Điều này cho phép CPU hỗ trợ các biến số nguyên mà không cần đếnthư viện phần mềm hỗ trợ, thường được yêu cầu đối với vi điều khiển 8 và16-bit Tuy nhiên, các phiên bản CPU ARM trước đó gặp bất lợi ở chỗ, nó chỉ
có thể truy cập dữ liệu kích thước là word hoặc halfword.Điều này hạn chếkhả năng của trình liên kết của trình biên dịch (compiler linker) trong việcđóng gói dữ liệu vào SRAM và như vậy một số SRAM sẽ bị lãng phí (Việclãng phí này có thể lên đến 25% tùy thuộc vào sự kết hợp của các biến được
sử dụng) Bộ xử lý Cortex-M3 có thể truy cập bộ nhớ không xếp hàng,việc đóđảm bảo rằng SRAM được sử dụng một cách hiệu quả
Trang 34Hình 1.10 : Ki u d li u truy c pểu diễn hiệu năng của bộ xử lí Cortex ữ liệu truy cập ệu năng của bộ xử lí Cortex ập trình của ARM Cortex-M3CPU Cortex có chế độ định địa chỉ cho word, half word và byte, nhưng có thểtruy cập bộ nhớ không xếp hàng (unaligned memory) Điều này cho phéptrình liên kết của trình biên dịch tự do sắp xếp dữ liệu chương trình trong bộnhớ Việc bổ xung hỗ trợ tính năng dải bit (bit banding) vào CPU Cortex chophép các cờ chương trình được đóng gói vào một biến word hoặc half-wordhơn là sử dụng một byte cho mỗi cờ.
Trang 35và 0xE0100000 – 0xFFFFFFFF Hệ thống gỡ lỗi trên chip của Cortex có thêmmột cấu trúc bus được gọi là bus ngoại vi riêng.
Ma trận Bus
Bus hệ thống và bus dữ liệu được kết nối với vi điều khiển bên ngoài thôngqua một tập các bus tốc độ cao được sắp xếp như một ma trận bus Nó chophép một số đường dẫn song song giữa bus Cortex và các bus chủ (busmaster) khác bên ngoài như DMA đến các nguồn tài nguyên trên chip nhưSRAM và các thiết bị ngoại vi Nếu hai bus chủ (ví dụ CPU Cortex và mộtkênh DMA) cố gắng truy cập bus vào ngoại vi có mức ưu tiên cao nhất.Tuynhiên, trong STM32 khối DMA được thiết kế để làm việc hòa hợp với CPUCortex
Timer hệ thống ( System timer)
Lõi Cortex có một bộ đếm xuống 24-bit, với tính năng tự động nạp lại (autoreload) giá trị bộ đếm và tạo sự kiện ngắt khi đếm xuống zero Nó được tạo ravới dụng ý cung cấp một bộ đếm thời gian chuẩn cho tất cả vi điều khiển dựatrên Cortex Đồng hồ Systick được sử dụng để cung cấp một nhịp đập hệthống cho một RTOS, hoặc để tạo ra một ngắt có tính chu kì để phục vụ chocác tác vụ được lập dịch Thanh ghi trạng thái và điều khiển của Systick trongđơn vị không gian điều khiển hệ thống Cortex-M3 cho phép chọn các nguồnxung clock cho Systick Bằng cách thiết lập bit CLKSOURCE, đồng hồSystick sẽ chạy ở tần số đúng bằng tần số hoạt động của CPU Khi bit nàyđược xóa, Systick sẽ chạy ở tần số bằng 1/8 CPU
Trang 36Hình 1.11 : Tr ng thái ho t ạng thái chương trình của CPU Cortex ạng thái chương trình của CPU Cortex động của chế độ Thread và Handlerng Systick
Đồ hồ Systick có ba thanh ghi Giá trị hiện tại và giá trị tải( current value vàreload value) nên được khởi tạo với chu kì đếm Thanh ghi trạng thái và điềukhiển có một bit cho phép (ENABLE bit) để bắt đầu chạy bộ đếm thời gian vàmột bit TICKINT cho phép tín hiệu ngắt
Xử lý ngắt
Một trong những cải tiến quan trọng của lõi Cortex so với CPU ARM trước
đó là cấu trúc ngắt của nó và xử lý các ngắt ngoại lệ (exception handling).CPU ARM7 và ARM9 có hai ngắt: ngắt nhanh (fast interrupt-FIQ) và ngắt đadụng (genenal purpose interrupt) hay còn gọi là interrupt request-FIQ) Haiđường tín hiệu ngắt này tất cả các nguồn ngắt bên trong một vi điều khiển,trong khi kỹ thuật được sử dụng là như nhau, nhưng việc thực hiện lại khácbiệt giữa các nhà sản xuất chip Cơ cấu ngắt của ARM7 và ARM9 gặp phảihai vấn đề.Trước hết nó không phải là xác định, thời gian để thực hiện việcchấm dứt hay hủy bỏ một lệnh đang thực thi khi xảy ra ngắt là không xácđịnh.Điều này có thể không là vấn đề trở ngại cho nhiều ứng dụng, nhưng nó
là một vấn đề lớn trong điều khiển thời gian thực.Thứ hai, cơ cấu ngắt củaARM7 và ARM9 không hỗ trợ ngắt lồng nhau (nested interrupts).Cần có sựhỗ trợ của phần mềm, sử dụng macro Assembler hoặc một RTOS.Một trong
Trang 37những tiêu chí quan trọng của lõi Cortex là khắc phục những hạn chế này vàcung cấp một cấu trúc chuẩn cực kỳ nhanh chóng và xác định.
Các chế độ năng lượng
Trong phần này, chúng ta sẽ xem xét các chế độ quản lý năng lượng bên tronglõi Cortex.Các tùy chọn đầy đủ về quản lý năng lượng của STM32 sẽ đượcxem xét ở phần sau.CPU Cortex có một chế độ ngủ (sleep mode), sẽ đặt lõiCortex vào chế độ năng lượng thấp của nó và ngừng thực thi các lệnh bêntrong của CPU Cortex Một phần nhỏ của NVIC vẫn được hoạt động bìnhthường, do đó ngắt tạo ra từ các thiết bị ngoại vi của STM32 có thể đánh lõiCortex
Cách đi vào chế độ năng lượng của CPU Cortex
Lõi Cortex có thể được đặt vào chế độ sleep của mình bằng cách thực hiệnWFI (Wait For Interrupt) hoặc WFE (Wait For Event) Trong trường hợp thựcthi lệnh WFI, lõi Cortex sẽ tiếp tục thực hiện và phục vụ ngắt chờ xử lý.Khiphục vụ ngắt –ISR kết thúc, sẽ có hai khả năng xảy ra.Trước tiên, CPUCortex có thể trở về từ ISR này và tiếp tục thực hiện chương trình ứng dụngnền như bình thường Bằng cách đặt bit SLEEPON EXIT trong thanh ghi điềukhiển hệ thống, lõi Cortex sẽ tự động đi vào chế độ ngủ một khi ISR này kếtthúc Điều này cho phép một ứng dụng năng lượng thấp(trạng thái hệ thốngluôn ở chế độ sleep khi không có sự kiện nào xảy ra) sẽ hoàn toàn được điềukhiển bằng ngắt, để lõi Cortex sẽ được đánh thức bởi một sự kiện( từ ngắt bêntrong hoặc ngắt bên ngoài CPU Cortex), chỉ cần thực thi một đoạn mã thíchhợp và sau đó lại đi vào chế độ ngủ, như vậy với một mã chương trình tốithiểu chúng ta có thể quản lý hiệu quả năng lượng của hệ thống
Ngắt WFE cho phép lõi Cortex tiếp tục thực thi thực hiện chương trình từđiểm mà nó đặt vào chế độ sleep.Nó sẽ không nhảy đến và thực thi một trình
Trang 38phục vụ nào Một sự kiện đánh thức (wake-up) chỉ đơn giản đến từ một thiết
bị ngoại vi dù cho nó không được kích hoạt như là một ngắt bên trong NVIC.Điều này cho phép một thiết bị ngoại vi có thể báo để đánh thức lõi Cortex vàtiếp tục thực thi chương trình ứng dụng mà không cần một trình phục vụ ngắtnào Các lệnh WFI và WFE không thể gọi trực tiếp từ ngôn ngữ C, tuy nhiênthuận lợi là trình biên dịch cho tâp lệnh Thumb-2 cung cấp sẵn các macro để
có thể được sử dụng như một lệnh C chuẩn(inline C command)
Ngoài chế độ năng lượng thấp SLEEPNOW và SLEEPONEXIT, lõi Cortex
có thể phát ra một tín hiệu SLEEPDEEP cho phần còn lại của hệ thống viđiều khiển Điều này cho phép các khối chức năng như DLL và thiết bị ngoại
vi có thể ngừng hoạt động, để STM32 có thể đi vào chế độ năng lượng thấpcủa nó
Hình 1.12 : Ch ến trúc của lõi ARM động của chế độ Thread và Handler ăng của bộ xử lí Cortex n ng lượng CPUng CPU
Khối hỗ trợ gỡ lỗi CoreSight
Tất cả CPU ARM đều trang bị hệ thống gỡ lỗi riêng của nó ngay trênchip.CPU ARM7 và ARM9 CPU có tối thiểu một cổng JTAG cho phép mộtcông cụ gỡ lỗi chuẩn kết nối với CPU và tải chương trình vào bộ nhớ RAMnội hoặc bộ nhớ Flash Cổng JTAG cũng hỗ trợ điều khiển động cơ bản (thiếtlập chạy từng bước và breakpoint v.v ) cũng như có thể xem nội dung của các
vị trí trong bộ nhớ Ngoài ra CPU ARM7 và ARM9 còn có thể cung cấp một
bộ theo dõi thời gian thực (real-time trace) thông qua một thiết bị ngoại vi gỡlỗi được gọi là ETM (embedded trace macro cell) Trong khi hệ thống gỡ lỗi
Trang 39này hoạt động tốt, thỳ nó bộc lộ một số hạn chế JTAG chỉ có thể cung cấpthông tin gỡ lỗi cho công cụ phát triển (như Keil, IAR … ) khi CPU ARMdừng lại, do đó không có khả năng cập nhật thời gian thực Ngoài ra, số lượngbreakpoints phần cứng được giới hạn tới hai điểm, mặc dù tập lệnh ARM7 vàARM9 hỗ trợ lệnh breakpoints, có thể được chèn vào mã chương trình bằngcông cụ phát triển (gọi là soft breakpoints ) Tương tự với JTAG, bộ theo dõithời gian thực ETM phải được trang bị bởi các nhà sản xuất với chi phí bổxung Do vậy ETM không phải lúc nào cũng được hỗ trợ Với lõi Cortex mới,toàn bộ hệt thống gỡ lỗi gọi là CoreSight đã được giới thiệu.
Hình 1.13 : Kh i h tr g l iỗi hỗ trợ gỡ lỗi ỗi hỗ trợ gỡ lỗi ợng CPU ỡ lỗi ỗi hỗ trợ gỡ lỗi
Hệ thống gỡ lỗi Cortex CoreSight sử dụng giao diện JTAG hoặc SWD (SerialWire Debug).CoreSight cung cấp chức năng chạy kiểm soát lỗi và theo dõi
Nó có thể chạy khi STM32 đang ở một chế độ năng lượng thấp Đây là mộtbước cải tiến lớn về chuẩn gỡ lỗi JTAG
Trang 40Hệ thống gỡ lỗi CoreSight có một cổng truy cập gỡ lỗi cho phép kết nối với viđiều khiển bằng công cụ JTAG Công cụ gỡ lỗi có thể kết nối bằng cách sửdụng chuẩn giao diện JTAG 5 chân hoặc giao diện 2 chân nối tiếp Ngoài cáctính năng gỡ lỗi của JTAG, CoreSight có chứa một theo dõi dữ liệu và mộtETM.
Trong thực tế, cơ cấu lỗi CoreSight trên STM32 cung cấp một phiên bản thờigian thực được cải tiến của chuẩn gỡ lỗi JTAG Hệ thống gỡ lỗi STM32CoreSight cung cấp 8 breakpoitns phần cứng có thể được đặt và xóa trong khiCPU Cortex đang chạy Ngoài ra bộ theo dõi Data Watch cho phép bạn xemcác nội dung của các vị trí nhớ trong khi CPU đang chạy Hệ thống CoreSight
có thể duy trì ở trạng thái hoạt động khi lõi Cortex đi vào chế độ ngủ Ngoài
ra các timer của STM32 có thể tạm dừng khi hệ thống CoreSight tạm dừngCPU Điều này cho phép chúng ta thực thi từng bước mã chương trình và giữcho timer đồng bộ với hệ thống Với các lệnh CPU Cortex, CoreSight cảithiện đáng kể khả năng gỡ lỗi thời gian thực của STM32 so với CPU ARM7
và ARM9 trước kia, trong khi vẫn sử dụng cùng một phần cứng chi phí thấp
Ngoại vi
ADC (Analog digital converter)
STM32 có thể có 2 bộ chuyển đổi tín hiệu tương tự sang tín hiệu số tùy vàocác phiên bản Bộ ADC có thể được cung cấp nguồn riêng từ 2.4V đến 3.6V.Nguồn cung cấp cho bộ ADC có thể được kết nối trực tiếp hoặc thông qua cácchân chuyên biệt Bộ ADC có độ phân giải 12-bit và tần suất lấy mẫu là12Mhz Với 18 bộ ghép kênh, trong đó 16 kênh dành cho các tín hiệu ngoại, 2kênh còn lại dành cho cảm biến nhiệt và vôn kế nội