- Kỹ thuật tiết kiệm điện cho bộ vi điều khiển
- 1. Chế độ ngủ
- 2. Sửa đổi động của tần số bộ xử lý
- 3. Cấu trúc phần mềm xử lý ngắt
- 4. Phần mềm cơ sở tối ưu hóa năng lượng
- Phần kết luận
Cũng giống như khí đốt (xăng / dầu diesel) rất quan trọng đối với xe đạp, xe tải và ô tô (vâng, không bao gồm Teslas!), Năng lượng điện đối với hầu hết các ứng dụng điện tử và hơn thế nữa, đối với các ứng dụng dựa trên hệ thống nhúng thường là pin (năng lượng hạn chế) được cung cấp năng lượng, từ điện thoại di động thông thường đến các thiết bị gia đình thông minh trong số những thiết bị khác.
Bản chất hạn chế của nguồn pin ngụ ý cần phải đảm bảo tỷ lệ tiêu thụ điện của các thiết bị này phải hợp lý để khuyến khích việc áp dụng và sử dụng chúng. Đặc biệt là với các thiết bị dựa trên IoT, nơi một thiết bị có thể tồn tại đến 8 - 10 năm chỉ với một lần sạc mà không cần thay pin.
Những xu hướng này đã khiến việc thực hiện các cân nhắc về điện năng thấp trong thiết kế hệ thống nhúng và trong những năm qua, các nhà thiết kế, kỹ sư và nhà sản xuất ở một số điểm đã phát triển một số cách thông minh để quản lý hiệu quả điện năng tiêu thụ của các sản phẩm, để đảm bảo rằng chúng tồn tại lâu hơn trên một phí duy nhất. Rất nhiều kỹ thuật này tập trung vào bộ vi điều khiển, là trái tim của hầu hết các thiết bị. Trong bài viết hôm nay, chúng ta sẽ tìm hiểu một số kỹ thuật này và cách chúng có thể được sử dụng để giảm thiểu mức tiêu thụ điện năng trong vi điều khiển. Mặc dù Bộ vi xử lý tiêu thụ ít điện năng hơn nhưng nó có thể được sử dụng ở mọi nơi trên Vi điều khiển, hãy theo liên kết để tìm hiểu Vi xử lý khác với Vi điều khiển như thế nào.
Kỹ thuật tiết kiệm điện cho bộ vi điều khiển
1. Chế độ ngủ
Các chế độ nghỉ (thường được gọi là chế độ công suất thấp) được cho là kỹ thuật phổ biến nhất để giảm tiêu thụ điện năng trong vi điều khiển. Chúng thường liên quan đến việc vô hiệu hóa một số mạch điện hoặc đồng hồ điều khiển một số thiết bị ngoại vi của bộ vi điều khiển.
Tùy thuộc vào kiến trúc và nhà sản xuất, bộ vi điều khiển thường có các loại chế độ nghỉ khác nhau, với mỗi chế độ có khả năng vô hiệu hóa mạch bên trong hoặc ngoại vi nhiều hơn so với chế độ khác. Chế độ ngủ thường bao gồm từ chế độ ngủ sâu hoặc tắt, đến chế độ nhàn rỗi và ngủ gật.
Một số chế độ khả dụng được giải thích bên dưới. Cần lưu ý rằng các đặc điểm cũng như tên gọi của các chế độ này có thể khác nhau giữa các nhà sản xuất.
Tôi. Chế độ Chờ / Ngủ
Đây thường là chế độ đơn giản nhất trong số các chế độ công suất thấp để các nhà thiết kế thực hiện. Chế độ này cho phép bộ vi điều khiển trở lại hoạt động đầy đủ với tốc độ rất nhanh. Do đó, đây không phải là chế độ tốt nhất, nếu chu kỳ nguồn của thiết bị, đòi hỏi thiết bị phải rời khỏi chế độ nghỉ rất thường xuyên, vì một lượng lớn năng lượng được rút ra, khi bộ vi điều khiển thoát khỏi chế độ nghỉ. Quay lại chế độ hoạt động từ chế độ chờ thường dựa trên gián đoạn. Chế độ này được thực hiện trên bộ vi điều khiển bằng cách tắt cây đồng hồ điều khiển mạch CPU trong khi đồng hồ tần số cao chính MCU vẫn tiếp tục chạy. Với điều này, CPU có thể tiếp tục hoạt động ngay lập tức kích hoạt đánh thức được kích hoạt. Gating đồng hồ đã được sử dụng rộng rãi để cắt tín hiệu ở chế độ năng lượng thấp cho vi điều khiển và chế độ này hiệu quả cổng tín hiệu xung nhịp trên CPU.
ii. Chế độ chờ
Chế độ chờ là một chế độ năng lượng thấp khác, dễ dàng cho các nhà thiết kế thực hiện. Nó rất giống với chế độ nhàn rỗi / nghỉ vì nó cũng liên quan đến việc sử dụng đồng hồ định vị trên CPU, nhưng một điểm khác biệt chính là nó cho phép thay đổi nội dung của ram mà không thường xảy ra với chế độ nghỉ / ngủ. Ở chế độ Chờ, các thiết bị ngoại vi tốc độ cao như DMA (truy cập bộ nhớ trực tiếp), Cổng nối tiếp, ADC và thiết bị ngoại vi AES được tiếp tục chạy để đảm bảo chúng khả dụng ngay sau khi CPU hoạt động. Đối với một số MCU nhất định, RAM cũng được duy trì hoạt động và có thể được truy cập bởi DMA, cho phép dữ liệu được lưu trữ và nhận mà không cần sự can thiệp của CPU. Công suất được rút ra trong chế độ này có thể thấp tới 50uA / MHZ đối với bộ vi điều khiển công suất thấp.
iii. Chế độ ngủ sâu
Chế độ ngủ sâu, thường liên quan đến việc tắt đồng hồ tần số cao và các mạch khác trong bộ vi điều khiển, chỉ để lại mạch đồng hồ được sử dụng để điều khiển các phần tử quan trọng như bộ đếm thời gian của cơ quan giám sát, phát hiện màu nâu và nguồn điện trên mạch đặt lại. Các MCU khác có thể thêm các yếu tố khác vào đó để cải thiện hiệu quả tổng thể. Công suất tiêu thụ ở chế độ này có thể thấp đến 1uA tùy thuộc vào MCU cụ thể.
iv. Chế độ Dừng / TẮT
Một số bộ vi điều khiển nhất định có các biến thể khác nhau của chế độ bổ sung này. Trong chế độ này, cả bộ dao động cao và thấp thường bị tắt chỉ để lại một số thanh ghi cấu hình và các phần tử quan trọng khác.
Các tính năng của tất cả các chế độ ngủ được đề cập ở trên khác nhau từ MCU đến MCU nhưng nguyên tắc chung là; giấc ngủ càng sâu, số lượng thiết bị ngoại vi bị vô hiệu hóa trong khi ngủ càng nhiều và lượng điện năng tiêu thụ càng thấp, mặc dù, điều này cũng thường có nghĩa là; lượng năng lượng tiêu thụ để phục hồi hệ thống càng cao. Do đó, nhà thiết kế phải xem xét sự thay đổi này và chọn MCU phù hợp cho nhiệm vụ mà không thực hiện các thỏa hiệp ảnh hưởng đến đặc điểm kỹ thuật của hệ thống.
2. Sửa đổi động của tần số bộ xử lý
Đây là một kỹ thuật phổ biến rộng rãi khác để giảm hiệu quả lượng điện năng tiêu thụ của bộ vi điều khiển. Đây là kỹ thuật lâu đời nhất và phức tạp hơn một chút so với các chế độ ngủ. Nó liên quan đến phần sụn tự động điều khiển xung nhịp của bộ xử lý, xen kẽ giữa tần số cao và thấp vì mối quan hệ giữa tần số của bộ xử lý và lượng điện năng tiêu thụ là tuyến tính (như hình dưới đây).
Việc thực hiện kỹ thuật này thường theo khuôn mẫu này; khi hệ thống ở trạng thái không hoạt động, phần sụn sẽ đặt tần số đồng hồ ở tốc độ thấp cho phép thiết bị tiết kiệm điện năng và khi hệ thống cần thực hiện các tính toán nặng, tốc độ đồng hồ được đưa trở lại.
Có những tình huống phản tác dụng đối với việc sửa đổi tần số bộ xử lý, thường là do phần sụn bị phát triển kém. Các tình huống như vậy nảy sinh khi tần số xung nhịp được giữ ở mức thấp trong khi hệ thống đang thực hiện các phép tính nặng. Tần số thấp trong trường hợp này có nghĩa là hệ thống sẽ mất nhiều thời gian hơn mức cần thiết để thực hiện nhiệm vụ đã đặt và do đó sẽ tiêu thụ tích lũy cùng một lượng điện năng mà các nhà thiết kế đã cố gắng tiết kiệm. Do đó, phải hết sức thận trọng khi thực hiện kỹ thuật này trong các ứng dụng quan trọng.
3. Cấu trúc phần mềm xử lý ngắt
Đây là một trong những kỹ thuật quản lý công suất khắc nghiệt nhất trong vi điều khiển. Điều này có thể thực hiện được bởi một số bộ vi điều khiển như lõi ARM cortex-M có bit ngủ khi thoát trong thanh ghi SCR. Bit này cung cấp cho vi điều khiển khả năng ngủ sau khi chạy một quy trình ngắt. Mặc dù có giới hạn về số lượng ứng dụng sẽ chạy trơn tru theo cách này, nhưng đây có thể là một kỹ thuật rất hữu ích cho các cảm biến trường và các ứng dụng dựa trên thu thập dữ liệu lâu dài khác.
Hầu hết các kỹ thuật khác theo ý kiến riêng của tôi là biến thể của những kỹ thuật đã được đề cập ở trên. Ví dụ, kỹ thuật đồng hồ ngoại vi có chọn lọc về cơ bản là một biến thể của chế độ ngủ trong đó người thiết kế chọn các thiết bị ngoại vi để bật hoặc tắt. Kỹ thuật này yêu cầu kiến thức sâu về vi điều khiển mục tiêu và có thể không thân thiện với người mới bắt đầu.
4. Phần mềm cơ sở tối ưu hóa năng lượng
Một trong những cách tốt nhất để giảm lượng điện năng tiêu thụ của bộ vi điều khiển là viết chương trình cơ sở hiệu quả và được tối ưu hóa tốt. Điều này ảnh hưởng trực tiếp đến số lượng công việc được thực hiện bởi CPU mỗi lần và điều này, do phần mở rộng góp phần vào lượng điện năng tiêu thụ của bộ vi điều khiển. Cần nỗ lực trong khi viết phần sụn để đảm bảo giảm kích thước mã và chu kỳ vì mọi lệnh không cần thiết được thực thi, một phần năng lượng được lưu trữ trong pin sẽ bị lãng phí. Dưới đây là một số mẹo dựa trên C phổ biến để phát triển phần sụn được tối ưu hóa;
- Sử dụng Lớp “Static Const” càng nhiều càng tốt để ngăn chặn việc sao chép trong thời gian chạy của các mảng, cấu trúc, v.v. tiêu thụ điện năng.
- Sử dụng con trỏ. Chúng có lẽ là phần khó hiểu nhất của ngôn ngữ C đối với người mới bắt đầu nhưng chúng là phần tốt nhất để tiếp cận các cấu trúc và liên kết một cách hiệu quả.
- Tránh Modulo!
- Biến cục bộ thay vì biến toàn cục nếu có thể. Các biến cục bộ được chứa trong CPU trong khi các biến toàn cục được lưu trong RAM, CPU truy cập các biến cục bộ nhanh hơn.
- Các kiểu dữ liệu chưa ký là người bạn tốt nhất của bạn nếu có thể.
- Áp dụng "đếm ngược" cho các vòng lặp nếu có thể.
- Thay vì các trường bit cho số nguyên không dấu, hãy sử dụng mặt nạ bit.
Các phương pháp tiếp cận để giảm lượng điện năng tiêu thụ của bộ vi điều khiển không giới hạn ở các phương pháp dựa trên phần mềm được đề cập ở trên, các phương pháp dựa trên phần cứng như kỹ thuật điều khiển điện áp lõi, vẫn tồn tại, nhưng để giữ độ dài của bài đăng này trong phạm vi hợp lý, chúng tôi sẽ tiết kiệm chúng cho một ngày khác.
Phần kết luận
Việc triển khai sản phẩm công suất thấp bắt đầu từ việc lựa chọn bộ vi điều khiển và có thể khá bối rối khi bạn cố gắng xem qua các tùy chọn đa dạng hiện có trên thị trường. Trong khi quét qua, biểu dữ liệu có thể hoạt động tốt để có được hiệu suất chung của MCU, nhưng đối với các ứng dụng quan trọng về điện, đây có thể là một cách tiếp cận rất tốn kém. Để hiểu các đặc tính công suất thực sự của vi điều khiển, các nhà phát triển phải tính đến các thông số kỹ thuật điện và các chức năng công suất thấp có sẵn cho vi điều khiển. Các nhà thiết kế không chỉ nên quan tâm đến mức tiêu thụ hiện tại theo từng chế độ năng lượng được quảng cáo bởi biểu dữ liệu của MCU, họ nên xem xét thời gian đánh thức, nguồn đánh thức và thiết bị ngoại vi có sẵn để sử dụng trong chế độ năng lượng thấp.
Điều quan trọng là phải kiểm tra các tính năng của bộ vi điều khiển bạn định sử dụng để xác định các tùy chọn bạn có để triển khai công suất thấp. Bộ vi điều khiển là một trong những bộ vi điều khiển được hưởng lợi lớn nhất từ tiến bộ công nghệ và hiện nay có một số bộ vi điều khiển công suất cực thấp đảm bảo bạn có nguồn lực để giúp bạn duy trì trong phạm vi ngân sách của mình. Một số trong số họ cũng cung cấp một số công cụ phần mềm phân tích sức mạnh mà bạn có thể tận dụng để thiết kế hiệu quả. Một yêu thích cá nhân là dòng vi điều khiển MSP430 của Texas Instrument.