Thông qua các giai đoạn của quá trình biên dịch, chương trình ứng dụng được người dùng phát triển trên ngôn ngữ bậc cao như C/C++ sẽ được chuyển thành ngôn ngữ máy để thiết bị nhúng có thể hiểu và thực thi được. Chương trình ứng dụng sẽ được truyền thành từng chuỗi byte sau khi nó được chuyển thành định dạng tập tin phổ biến như *.hex hoặc *.bin từ các ngôn ngữ lập trình thường sử dụng khi lập trình nhúng như C/C++. Chuỗi byte này có liên quan tới địa chỉ bộ nhớ của vi điều khiển.  Có thể nạp hay thay đổi chương trình đang chạy trên thiết bị bằng cách cắm dây nạp trực tiếp từ máy tính xuống thiết bị thông qua các mạch nạp (programmer).  Trong trường hợp các thiết bị nhúng hỗ trợ cập nhật chương trình từ xa thì tập tin chương trình từ máy chủ quản lý dữ liệu sẽ được tải xuống thiết bị nhúng thông qua môi trường Internet và được ghi vào bộ nhớ. Bài viết này sẽ phân tích định dạng của tập tin chương trình ở định dạng HEX và tập tin chương trình ở định dạng BIN. Việc hiểu được định dạng các tập tin giúp các bạn có thể triển khai các tính năng như cập nhật chương trình từ xa (FOTA) hoặc có thay đổi chương trình ứng dụng thông qua một chuẩn giao tiếp phổ biến như UART (In-Application Programming – IAP) mà không cần sử dụng mạch nạp để ghi trực tiếp chương trình vào bộ nhớ . Continue Reading

Thiết kế của vi xử lý ARM Cortex M3/4 định nghĩa và phân chia các vùng nhớ khác nhau trong không gian bộ nhớ của vi xử lý. Sau đó, các hãng vi điều khiển như STMicroelectronics sẽ thiết kế các bộ nhớ khác nhau của họ như bộ nhớ FLASH, bộ nhớ SRAM và các ngoại vi khác nhau như ADC, TIMER, USB… vào các vùng nhớ tương ứng với không gian bộ nhớ của vi xử lý.Continue Reading

Dòng vi xử lý ARM Cortex M là một dòng vi xử lý được thiết kế tối ưu cho giá thành và năng lượng tiêu thụ của vi điều khiển, được sử dụng trong rất nhiều ứng dụng nhúng khác nhau. Trong bài viết này, mình sẽ cung cấp một số thông tin về Vi xử lý ARM Cortex M, quá trình khởi động của các vi điều khiển được thiết kế dựa trên vi xử lý này và việc áp dụng các kiến thức trên để thiết kế tính năng cập nhật chương trình từ xa.  Continue Reading

Có hai cách để MCU trao đổi dữ liệu với các thiết bị bên ngoài, đó là truyền dữ liệu nối tiếp và song song. Đối với kênh truyền nối tiếp, một số giao thức chúng ta thường sử dụng: SPI, I2C và UART. Bài viết này sẽ giúp các bạn hiểu rõ về chuẩn giao tiếp SPI và hướng dẫn các bạn giao tiếp SPI với STM32F4.Continue Reading

Chắc hẳn các bạn đã từng nghe nhiều về Điện toán đám mây hay Cloud computing. Vậy Điện toán đám mây được định nghĩa như thế nào? Nó được chia thành bao nhiêu loại? Có các mô hình triển khai nào và lợi ích khi sử dụng Điện toán mây là gì? Bài viết này sẽ giúp các bạn làm rõ các thông tin trên. Continue Reading

Ultra Wideband hay UWB là một giao thức truyền thông không dây, tầm ngắn như Bluetooth hoặc Wi-Fi sử dụng sóng vô tuyến. Nhưng UWB khác ở chỗ hoạt động ở tần số rất cao, nó sử dụng một dải phổ rộng vài GHz (từ 3.1 tới 10.6 GHz).. Có thể hình dung về Ultra Wideband như một radar có thể liên tục quét toàn bộ căn phòng và khóa chính xác vào một vật thể như chùm tia laze để khám phá vị trí của vật thể và truyền dữ liệu.Continue Reading

Phân tích và thiết kế hệ thống là các bước vô cùng quan trọng đòi hỏi những người phát triển cần phải thực hiện trước khi bắt tay vào thi công hệ thống. Có nhiều cách tiếp cận phát triển hệ thống tùy vào yêu cầu người dùng và công nghệ mà hệ thống áp dụng. Trong bài viết này mình sẽ hướng dẫn các bạn cách xác định yêu cầu dự án và lên đặc tả cho các yêu cầu đó dựa trên các kinh nghiệm thực tế của mìnhContinue Reading