Trong nhiều trường hợp, một trình biên dịch C sẽ sử dụng phiên bản 16-bit nếu các công việc được thực hiện hiệu quả hơn so với sử dụng một phiên bản 32- bit.. Có 4 dạng tài nguyên hệ thố
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA ĐIỆN - ĐIỆN TỬ
BÁO CÁO MÔN HỌC
CHỨC NĂNG CÁC KHỐI VÀ CÁC THÀNH PHẦN
TRONG KHỐI CỦA KIT FRDM-KL46Z
GVHD : Thầy Đậu Trọng Hiển SVTH :
Phạm văn Doanh Trương Quốc Đạt Hoàng Văn Khoa Mai Hoàng Vinh
14119008
14119012
14119025
14119066
11/2016
Trang 2Kit FRDM-KL46Z là một kit được xây dựng dựa trên vi xữ lý ARM Cortex-M0+ Freescale sản xuất
Sơ lượt về chức năng chính của Kit :
Chip ARM MKL46Z256VLL4MU, core clock 48MHz, bộ nhớ flash 256KB, 32KB sram, tích hợp bộ điều khiển segment LCD, USB otg
Cảm ứng điện dung (capactivie touch slider), trên chip ARM đã tích hợp controller cho touch sensing
Cảm biến Accelerometer MMA8451Q
Cảm biến từ trường magnetometer MAG3110
Linh hoạt trong lựa chọn nguồn, có thể sử dụng 5V từ cổng USB máy tính,hoặc từ pin 3V3
Form factor compatible with Arduino tmR3 pin layout
Tích hợp bộ debug Open SDA trên kit, có thể sử dụng Open SDA để debug và giao tiếp RS232
Hệ thống phần cứng gồm có 8 khối chức năng chính sau :
1 MPU
Bộ vi xử lý điện Cortex có kích thước nhỏ nhất và giá thành thấp - tối ưu hóa cho thời gian và không gian thiết kế hệ thống và vi điều khiển ứng dụng xác định
Trang 3Dòng ARM Cortex xử lý một loạt các khả năng mở rộng, năng lượng hiệu quả và dễ
sử dụng bộ xử lý đáp ứng nhu cầu của các ứng dụng nhúng thông minh và kết nối của ngày nay Cortex-M giúp các nhà phát triển cung cấp nhiều tính năng hơn, trong thời gian
ít hơn, với chi phí thấp hơn, với kết nối đa năng, tái sử dụng mã toàn diện, bảo đảm tiêu chuẩn và nhà nước về hiệu quả năng lượng Các bộ vi xử lý ARM Cortex-M sử dụng ARM Thumb ® -2 - công nghệ nhằm cung cấp mật độ mã vượt trội hơn so với 8-bit, 16-bit Công nghệ Thumb-2 hỗ trợ các tính năng cơ bản củaThumb 16-bit, đồng thời mở rộng thêm các tính để Thumb 32-bit mạnh mẽ hơn Trong nhiều trường hợp, một trình biên dịch C sẽ sử dụng phiên bản 16-bit nếu các công việc được thực hiện hiệu quả hơn
so với sử dụng một phiên bản 32- bit
Bộ vi xử lý ARM Cortex-M là sự lựa chọn phổ biến nhất cho các ứng dụng nhúng, vì
nó được cấp phép cho hơn 350 đối tác của ARM và được hỗ trợ rộng rãi của nhiều công
ty nhúng thế giới với các công cụ của bên thứ ba rộng nhất, RTOS và hỗ trợ trung gian của bất kỳ kiến trúc nào Sử dụng một bộ xử lý chuẩn trong thiết kế cho phép các đối tác ARM tạo ra các thiết bị với một cơ sở phù hợp, cho phép họ tập trung vào việc triển khai
và tạo ra các thiết bị cao cấp
Cortex-M0+ có hiệu quả năng lượng cao nhất trong các dòng Nó được xây dựng trên
bộ vi xử lý Cortex-M0 rất thành công, giữ lại đầy đủ những tính đặc tính cơ bản và khả năng tương thích công cụ, đồng thời giảm hơn nữa mức tiêu thụ năng lượng và tăng hiệu suất Lợi ích chính: hiệu quả năng lượng cao nhất Cortex-M0 + xử lý đạt được mức tiêu thụ điện
Năng chỉ 9.4μW / MHz (quá trình 90LP, cấu hình cơ bản), trong khi đạt được một hiệu suất 2.46 CoreMark / MHz Tính linh hoạt Các bộ xử lý Cortex-M0 + bao gồm các chức năng tùy chọn cho
Phép các nhà thiết kế để đạt được một sự phù hợp-cho mục đích giải pháp tối ưu cho một loạt các ứng dụng Chúng bao gồm các chu trình đơn I / O giao diện để điều khiển nhanh hơn, các vi vết đệm (MTB) để tăng cường gỡ lỗi, và những người khác mà là chung cho tất cả các bộ vi xử lý Cortex-M, chẳng hạn như các đơn vị bảo vệ bộ nhớ (MPU) và vector relocatable -bàn Thời gian đưa ra thị trường nhanh Các bộ xử lý Cortex-M0 + tương thích nhị
Phân để M0 và trở lên tương thích nhị phân để tất cả các bộ vi xử lý
Cortex-M khác làm cho phần mềm tái sử dụng một lợi thế thực hiện được Các nhà phát triển cũng được hưởng lợi từ quy mô hợp tác rộng lớn của hãng ARM, nhờ đó dễ dàng hơn trong việc tìm kiếm các công cụ nhúng, phần mềm, và sở kiến thức
2 SYSTEM
o Internal Watchdog hoặc Watchdog timer ( Cơ quan giám sát nội bộ )
Trang 4Watchdog timer là bộ đếm thời gian hoạt động liên tục nhằm tự động thực hiện một nhiệm vụ nào đó Sau một khoảng thời gian được định trước nếu bộ đếm không được dừng hoặc refresh nó sẽ kích hoạt tác vụ đã được định sẵn ví dụ như reset thiết bị, tắt màn hình, phát tín hiệu cảnh báo, Trong quá trình đếm nếu bộ đếm được refresh nó cứ thế
tự động đếm tiếp nhưng bắt đầu lại với thời gian là 0
Thông thường Watchdog timer được nhắc đến như một sự hỗ trợ mang tính phần cứng, được sử dụng bởi phần mềm qua các trình điều khiển, tuy nhiên ở đây tôi muốn nhìn nhận nó một cách tổng quát mang tính khái niệm, vì vậy Watchdog timer cũng dễ dàng được triển khai trên cơ sở phần mềm
Dưới đây là minh họa cho cơ chế hoạt động của Watchdog timer trong tình huống phần cứng được tạo ra nhằm giúp hệ thống tự động khởi động lại khi phần mềm bị treo Chức năng này là cần thiết trong tình huống các thiết bị nhúng được đòi hỏi phải hoạt động 24/7 như camera, đầu đọc, thiết bị truyền dẫn dữ liệu
o DMA
Direct memory access (DMA) là một phương pháp cho phép các thiết bị Input/Output(I/O) gửi hoặc nhận dữ liệu trực tiếp tới hoặc từ bộ nhớ chính mà không cần thông qua CPU Quá trình này được quản lý bởi một vi xử lý gọi là DMA controller(DMAC) Mỗi kênh DMA yêu cầu 2 đường để thực hiện các chức năng của nó Một đường cho DMA controller, và một đường cho CPU
Một số công cụ tài nguyên hệ thống của máy tính được sử dụng trong việc giao tiếp giữa phần cứng và phần mềm Có 4 dạng tài nguyên hệ thống bao gồm:
I/O address
Memory address
Interrupt request numbers(IRQ)
Direct memoty access(DMA) channels
Các kênh DMA được sử dụng để trao đổi dữ liệu giữa các thiết bị ngoại vi và bộ nhớ
hệ thống Cả 4 dạng tài nguyên hệ thống kể trên đều hoạt động dựa vào các đường cố định trên một bus Một kênh DMA cho phép một thiết bị truyền dữ liệu không qua CPU,
do đó giảm tải cho CPU Nếu không có DMA, CPU phải sao chép mọi dữ liệu từ các thiết
bị ngoại vi
o Low-Leakage Weakup
Dùng để cho vi xử lý thoát khỏi chế độ tiêu thụ điện năng thấp bằng một sự kiện bên ngoài ví dụ như sự thay đổi trạng thái pin hay một thiết bị được hỗ trợ mà nó vẫn đang hoạt động hay một chức năng không đồng bộ với trạng thái năng lượng thấp
o Bit manipulation Engine
Trang 5Dùng để kiểm soát thiết bị hoạt động với mức tiêu thụ thấp, phát hiện và sửa chữa các lỗi thuật toán né dữ liệu, thuật toán mã hóa và tối ưu hóa
o Unique ID
Mỗi thiết bị có một ID duy nhất thường là số se-ri, số ngẫu nhiên,… được đăng ký qua một tổ chức có thẩm quyền như EPC (Electronic product code)
3 MEMORIES
Trong máy tính, bộ nhớ đề cập đến các thiết bị phần cứng máy tính sử dụng để lưu trữ thông tin để sử dụng ngay lập tức trong một máy tính Bộ nhớ máy tính được chia làm 2 loại là bộ nhớ bay hơi (Volatile Memory) và bộ nhớ không bay hơi(Non-Volatile Memory)
Bộ nhớ bay hơi là bộ nhớ máy tính đòi hỏi nguồn điện để duy trì các thông tin được lưu trữ Hầu hết bộ nhớ bán dẫn dễ bay hơi là RAM tĩnh (SRAM) hoặc RAM động (DRAM) SRAM giữ lại nội dung của nó miễn là điện được kết nối và rất dễ dàng để giao tiếp, nó sử dụng sáu transistor trên cho một bit
Dynamic RAM thì phức tạp hơn khi giao tiếp và kiểm soát, cần chu kỳ làm mới thường xuyên để tránh bị mất nội dung của nó, nhưng chỉ sử dụng một bóng bán dẫn và một tụ điện cho mỗi bit, cho phép nó để đạt được mật độ cao hơn nhiều và chi phí cho mỗi bit sẽ rẻ hơn rất nhiều
Bộ nhớ không bay hơi là bộ nhớ máy tính có thể giữ lại các thông tin được lưu trữ ngay cả khi không có nguồn điện Ví dụ về các bộ nhớ không bay hơi bao gồm bộ nhớ chỉ đọc (ROM), bộ nhớ flash, hầu hết các loại thiết bị máy tính từ lưu trữ (ví dụ như ổ đĩa cứng, đĩa mềm và đĩa từ), đĩa quang, và các phương pháp lưu trữ máy tính đầu tiên như giấy băng và thẻ đục lỗ
Bộ nhớ của KIT K4lx family gồm bộ nhớ Flash dung lượng từ 128 đến 256KB để lưu trữ chương trình và Ram tĩnh dung lượng từ 16 đến 32KB
4 CLOCKS
Trong vi điều khiển, nguồn clock như là “trái tim” của toàn bộ hệ thống, nó cung cấp xung nhịp cho lõi vi điều khiển và các thiết bị ngoại vi giúp chúng hoạt động được
o Phase Locked Loop (vòng khóa pha)
Phase Locked Loop (PLL) về cơ bản là một hệ thống kếm soát tần số khép kín Trong đó, tín hiệu hồi tiếp dùng để khóa tần số và pha của tín hiệu ra theo tần số và pha của tín hiệu vào PLL ngày nay có công nghệ tích hợp cao làm cho PLL nhỏ, tin cậy, giá rẻ, dễ sử
Trang 6dụng, đa năng, ứng dụng phổ thông như lọc, tổng hợp tần số, giải điều chề, điều chế, điều khiển tự động
o Frequency-locked loop (vòng lặp tần bị khóa)
Một tần số khóa, hoặc vòng lặp tần bị khóa (FLL), là một hệ thống điều khiển điện tử để tạo ra một tín hiệu đó là bị khóa với tần số của một đầu vào hoặc "tham chiếu" tín hiệu mạch này so sánh tần số của một bộ dao động kiểm soát để tham khảo, tự động tăng hoặc giảm tần số của bộ dao động cho đến khi tần số của nó (nhưng không nhất thiết phải pha của nó) là phù hợp với các tài liệu tham khảo
o Low/high-frequency oscillator(bộ dao động thấp/cao tần)
Một bộ dao động điện tử là một mạch điện tử sản xuất một, định kỳ dao động tín hiệu điện tử, thường là một sóng sin hay sóng vuông Oscillators chuyển đổi dòng điện một chiều (DC) từ một nguồn cung cấp năng lượng cho một dòng điện xoay chiều (AC) tín hiệu Chúng được sử dụng rộng rãi trong nhiều thiết bị điện tử Ví dụ phổ biến của tín hiệu được tạo ra bởi dao động bao gồm các tín hiệu phát sóng của đài phát thanh và truyền hình , tín hiệu đồng hồ mà điều chỉnh máy tính vàđồng hồ thạch anh , và các âm thanh được sản xuất bởi beepers điện tử và trò chơi video
Oscillators thường được đặc trưng bởi các tần số của tín hiệu đầu ra của họ:
Một bộ dao động tần số thấp (LFO)
Một dao động âm thanh tạo ra tần số trong âm thanh tầm xa, khoảng 16 Hz đến 20 kHz
Một dao động RF tạo ra các tín hiệu trong các tần số vô tuyến (RF) phạm vi khoảng 100 kHz đến 100 GHz
Internal reference clock(đồng hồ tham khảo nội bộ) Trong điện tử và máy tính, các tín hiệu đồng hồ sử dụng để đồng bộ hóa và các hoạt động lịch
5 ANALOG
o 16-bit ADC
ADC hay Mạch chuyển đổi tương tự ra số hay Analog-to-digital converter thực hiện chuyển đổi một đại lượng vật lý tương tự liên tục nào đó (thường là điện áp) sang giá trị
số biểu diễn độ lớn của đại lượng đó Sự chuyển đổi liên quan đến việc lượng tử hóa tín hiệu ngõ vào, do đó nhất thiết mắc một số lượng lỗi Thay vì làm một chuyển đổi duy nhất, ADC thực hiện việc chuyển đổi theo định kỳ gọi là "mẫu" ngõ vào (sample) Kết
Trang 7quả là một quá trình thời gian liên tục time) và giá trị liên tục (continuous-amplitude) được chuyển đổi sang dãy số rời rạc về cả hai thứ đó
Dải giá trị điện áp danh định nầy được gọi là dải động, điện áp lớn hơn thì gây tràn (overflow)
Tại ngõ vào chính của ADC trong chip có thể có phần tử Multiplexer, cho ra ADC đa ngõ vào hay ADC đa kênh Trước đây giá thành ADC cao, nên đã bố trí 8 đến 64 ngõ vào Hiện nay xuất hiện các chip chỉ bố trí 1, 2 hoặc 4 ngõ vào
o Analog comparator
Analog comparators bộ khuếch đại so sánh độ lớn của điện áp ở hai đầu vào Một so sánh tương tự là một bộ khuếch đại hoạt động với thông tin phản hồi tiêu cực loại bỏ, và không có thông tin phản hồi và tăng rất cao, điện áp đầu ra đi vào một cực đoan đến khác Trong bộ so sánh tương tự, này thường được giới hạn chỉ là bên ngoài ± 10 volt giới hạn để tránh bất kỳ thiệt hại có thể
o 12-bit DAC
DAC hay Mạch chuyển đổi số ra tương tự, hay Digital-to-analog converter, là một Linh kiện bán dẫn thực hiện chuyển đổi dữ liệu kỹ thuật số (thường là nhị phân) thành tín hiệu tương tự thường là điện áp
Nó hoàn nguyên tín hiệu tương tự từng được số hóa bởi ADC
Thông thường thì chuyển đổi DAC thực hiện bằng mảng điện trở, với số ngõ vào tương ứng với số bit của số liệu, và một ngõ ra Giá trị điện trở được chọn tương ứng với bậc của bit số, để tạo ra trọng số biến đổi, sao cho khi điện áp vào ở mức logic quy định thì phần của bit đó góp vào điện áp tổng đúng như bậc của bit đó Kết quả là ở ngõ ra có mức điện áp tương ứng với giá trị số của ngõ vào
Do có sơ đồ đơn giản, chuyển đổi DAC bằng mảng điện trở có thể làm việc ở tần số tương đối cao
Dẫu vậy trong thực tế thì chế tạo được mảng điện trở chính xác và ổn định cao là khó khăn về công nghệ.Nó dẫn đến giá thành mảng cao Vì thế chip DAC thường bố trí ghép kênh, mảng điện trở thực thi biến đổi cho nhiều đường tín hiệu
6 TIMERS
Khối timer cho phép người dùng dễ dàng thực hiện một bộ đếm chương trình hoặc điều khiển cho các ứng dụng thời gian Bộ đếm thời gian có thể thực hiện các chức năng như tần số, đo đếm sự kiện, đo lường khoảng thời gian, đồng hồ, delay trễ thời gian Bộ đếm
Trang 8thời gian có thể tạo ra một tín hiệu ngắt khi quá hạn, hoặc cung cấp các giá trị hiện tại của
số trong khi hoạt động
o PWM
Phương pháp điều xung PWM (Pulse Width Modulation) là phương pháp điều chỉnh điện
áp ra tải, hay nói cách khác, là phương pháp điều chế dựa trên sự thay đổi độ rộng của chuỗi xung vuông, dẫn đến sự thay đổi điện áp ra Các PWM khi biến đổi thì có cùng 1 tần số và khác nhau về độ rộng của sườn dương hay sườn âm
Đây là phương pháp được thực hiện theo nguyên tắc đóng ngắt nguồn của tải một cách
có chu kì theo luật điều chỉnh thời gian đóng cắt Phần tử thực hiện nhiện vụ đó trong mạch các van bán dẫn
o PERIODIC INTERRUPT TIMER
Ngắt là một sự kiện xảy ra làm dừng hoạt động chương trình hiện tại để phục vụ thực thi một tác vụ hay một chương trình khác Cơ chế ngắt giúp CPU làm tăng tốc độ đáp ứng phục vụ các sự kiện trong chương trình hoạt động của VXL/VĐK
Ví dụ các ngắt như ngắt truyền thông nối tiếp, ngắt bộ định thời gian, ngắt cứng, ngắt ngoài Khi một sự kiện yêu cầu ngắt xuất hiện, nếu được chấp nhận CPU sẽ lưu cất trạng thái hoạt động cho chương trình hiện tại đang thực hiện ví dụ như nội dung bộ đếm chương trình (con trỏ lệnh) các nội dung thanh ghi lưu dữ liệu điều khiển chương trình nói chung để thực thi chương trình phục vụ tác vụ cho sự kiện ngắt Thực chất quá trình ngắt là CPU nhận dạng tín hiệu ngắt, nếu chấp nhận sẽ đưa con trỏ lệnh
chương trình trỏ tới vùng mã chứa chương trình phục vụ tác vụ ngắt Vì vậy mỗi một ngắt đều gắn với một vector ngắt như một con trỏ lưu thông tin địa chỉ của vùng bộ nhớ chứa mã chương trình phục vụ tác vụ của ngắt
o REAL TIME CLOCK
Trang 9Đồng hồ thời gian thực (RTC : Real-time clock), khái niệm thời gian thực ở đây được dùng với ý nghĩa thời gian tuyệt đối mà con người đang sử dụng, tình bằng giây, phút, giờ…
7 COMMUNICATION INTERFACES
Trong kit FRDM-KL46Z có các chuẩn giao tiếp để giao tiếp với ngoại vi
o I2C (Inter‐IC)
Giao thức ưu tiên truyền thông nối tiếp được phát triển bởi Philips Semiconductor và được gọi là bus I2C Tất cả các chíp có tích hợp và tương thích với I2C đều có thêm một giao diện tích hợp trên Chip để truyền thông trực tiếp với các thiết bị tương thích I2C khác Đường bus thực hiện truyền thông nối tiếp I2C gồm hai đường là đường truyền dữ liệu nối tiếp SDA và đường truyền nhịp xung đồng hồ nối tiếp SCL Vì cơ chế hoạt động
là đồng bộ nên nó cần có một nhịp xung tín hiệu đồng bộ Đơn vị hoặc thiết bị khởi tạo quá trình truyền thông là đơn vị Chủ và cũng là đơn vị tạo xung nhịp đồng bộ, điều khiển cho phép kết thúc quá trình truyền Nếu đơn vị Chủ muốn truyền thông với đơn vị khác
nó sẽ gửi kèm thông tin địa chỉ của đơn vị mà nó muốn truyền trong dữ liệu truyền Đơn
vị Tớ đều được gán và đánh địa chỉ thông qua đó đơn vị Chủ có thể thiết lập truyền thông
và trao đổi dữ liệu
I2C là một giao diện truyền thông đặc biệt thích hợp cho các ứng dụng truyền thông giữa các đơn vị trên cùng một bo mạch với khoảng cách ngắn và tốc độ thấp Ví dụ như truyền thông giữa CPU với các khối chức năng trên cùng một bo mạch như EEPROM, cảm biến, đồng hồ tạo thời gian thực Hầu hết các thiết bị hỗ trợ I2C hoạt động ở tốc độ 400Kbps, một số cho phép hoạt động ở tốc độ cao vài Mbps I2C khá đơn giản để thực thi kết nối nhiều đơn vị vì nó hỗ trợ cơ chế xác định địa chỉ
o SPI
SPI là một giao diện cổng nối tiếp đồng bộ ba dây cho phép kết nối truyền thông nhiều VĐK được phát triển bởi Motorola Trong cấu hình mạng kết nối truyền thống này phải
có một VĐK giữ vai trò là Chủ (Master) và các VĐK còn lại có thể hoặc là Chủ hoặc là
Tớ SPI có 4 tốc độ có thể lập trình, cực và pha nhịp đồng hồ khả trình và kết thúc ngắt truyền thông Nhịp đồng hồ không nằm trong dòng dữ liệu và phải được cung cấp như một tín hiệu tách độc lập Có ba thanh ghi SPSR, SPCR và SPDR cho phép thực hiện các chức năng điều khiển, trạng thái và lữu trữ Có bốn chân cơ bản cần thiết để thực thi chuẩn giao diện truyền thông này
Trang 10Dữ liệu ra MOSI (Master Output – Slave Input)
Dữ liệu vào MISO (Master Input – Slave Output)
Nhịp xung chuẩn SCLK (Serial Clock)
Lựa chọn thành phần tớ SS (Slave Select) Nếu hệ thống có nhiều đơn vị tớ đơn vị Chủ sẽ tạo phải ra các tín hiệu tách biệt để chọn đơn vị Tớ Đơn vị Chủ sẽ tạo ra tín hiệu chọn đơn vị Tớ nhờ các chân tín hiệu logic đa chức năng Các tín hiệu này phải được điều khiển và đảm bảo ổn định về thời gian để tránh trường hợp tín hiệu bị thay đổi trong quá trình đang truyền dữ liệu Một điều dễ nhận ra rằng SPI không hỗ trợ cơ chế xác nhận trong quá trình thực hiện truyền thông Điều này phụ thuộc vào giao thức định nghĩa hoặc phải thực hiện bổ sung thêm một số các mở rộng phụ bên ngoài Khả năng truyền thông đồng thời hai chiều với tốc độ lên đến khoảng vài Mbit/s và nguyên lý khá đơn giản nên SPI hoàn toàn phù hợp để thực hiện truyền thông giữa các thiết bị yêu cầu truyền thông tốc độ chậm, đặc biệt hiệu quả trong các ứng dụng một đơn vị Chủ và một đơn vị Tớ Tuy nhiên trong các ứng dụng với nhiều đơn vị Tớ việc thực thi lại khá phức tạp vì thiếu
cơ chế xác định địa chỉ, và sự phức tạp sẽ tăng lên khi số đơn vị Tớ tăng
o UART
Trong giao tiếp UART, hai UART giao tiếp trực tiếp với nhau Các UART truyền chuyển
dữ liệu song song từ một thiết bị điều khiển như một CPU vào dạng nối tiếp, truyền dữ liệu nối tiếp đến UART nhận, sau đó chuyển đổi dữ liệu nối tiếp trở lại thành dữ liệu song song cho thiết bị nhận Chỉ có hai dây để truyền dữ liệu giữa hai UART Luồng dữ liệu từ các pin Tx của UART truyền với pin Rx của UART nhận:
Để bắt đầu cho việc truyền dữ liệu bằng UART, một START bit được gửi đi, sau đó là các bit dữ liệu và kết thúc quá trình truyền là STOP bit
Cả hai UARTs cũng phải phải được cấu hình để truyền và nhận các cấu trúc gói dữ liệu giống nhau