HỆ THỐNG NHÚNG – THỰC TẠI VÀ DỰ ĐOÁN!

-----------

Người viết: Bùi Trung Hiếu

Webmaster: Khoa học và tuổi trẻ

 

Với dân điện tử-lập trình phần cứng hiện nay, khái niệm “embedded” dần đã trở thành quen thuộc, từ những nhân xử lý phổ biến 8 bits, người ta đã thấy xuất hiện các nhân xử lý 16/32bits, với tốc độ CPU cao, đáp ứng thời gian thực tốt, các ứng dụng cũng dần được triển khai, không còn giới hạn trong phạm vi phòng nghiên cứu, xưởng thực tập,... mà manh nha đi vào sản xuất, vào cuộc sống...

Trong khi ta đang tranh cãi với nhau: sử dụng PIC, AVR, hay dòng 8051 cổ điển... là tốt, trong khi ta đưa ra hàng tá lý do để bảo vệ cho lý do chọn chip 8bits của mình, cho nó là tốt nhất, là tối ưu,... thì có một bộ phận không nhỏ người nghiên cứu bắt đầu thấy những ứng dụng to lớn khi làm việc với những nhân xử lý cao cấp hơn, mở rộng được ngoại vi, giao tiếp PC với tốc độ cao, kết nối các modul linh hoạt, phương thức truyền thông đa dạng, có khả năng kết nối Internet, điều khiển đáp ứng thời gian thực tốt hơn,  thu thập số liệu thật hơn, các kết quả tính toán trung gian là liên tục (theo ý hiểu không dùng thuật tra bảng J)... những công việc mà trước đây chỉ có PC làm được, dần dần nhân CPU của hệ thống nhúng đã đảm đương thay!

Chưa bao giờ, hệ thống nhúng phát triển vượt bật như vậy!

  1. Cái nhìn tổng quan về dòng MCU 8bits:

Trong thời 8 bits là phổ biến, người ta ngại khi dùng đến chữ “embedded” ở sản phẩm của mình! Nói một cách khách quan, thì trên 90% các sản phẩm phần cứng lập trình hiện nay trên thị trường (ta), đều có nhân xử lý 8 bits làm CPU. Trong đó:

+Atmel luôn chiếm số đông vì thị phần ổn định trong các ứng dụng thông thường.

+PIC đang được nhiều SV, người nghiên cứu tìm hiểu và sử dụng, MCU này có sự hỗ trợ tốt từ cộng đồng. Tuy nhiên, PIC chưa phổ biến trong các sản phẩm thương mại, một phần vì giá tương đối cao, nó là hạn chế rất lớn khi một nhà sản xuất quyết định sử dụng PIC trong sản phẩm của họ, dsPIC hi vọng sẽ có tương lai trong các ứng dụng cao cấp xử lý số đa dụng sau này, tuy nhiên, ở hiện tại, vẫn đang trong giai đoạn thử nghiệm, mặc dù cũng đã có kết quả bước đầu!

+AVR cũng chiếm một phần không nhỏ thị phần, với dân lập trình quen dùng Atmel, sự chuyển tiếp từ 89C51 lên AVR là tương đối dễ chịu, giá cả của AVR lại rất cạnh tranh, đó là ưu thế của họ, so sánh mức đa dụng của AVR và PIC thì 2 dòng này có những tính năng tương đồng nhau, đấy cũng là lý do vì sao, một số người sản xuất bắt đầu chú ý tới AVR, tuy nhiên, hạn chế lớn nhất của họ (người dùng AVR) là sự hỗ trợ từ cộng đồng không tốt như PIC!

+Sự thành công của các đội Robocon khoa Điện ĐH BKTP, một vài cuộc thi về MCU 8bits gần đây của Philips làm ta nhắc đến dòng P89 của họ, theo nhận xét chủ quan của tôi, dòng này rất gần với họ 8051 kinh điển, sản phẩm tương đối phong phú, và thích hợp với các ứng dụng đặc biệt của người dùng!

Sau khi liệt kê như thế, bạn cho rằng ta nên có một đánh giá, một kết luận cụ thể: nên dùng MCU nào trong các sản phẩm? Tôi không muốn đi sâu vào cuộc tranh cãi không hồi kết mà theo tôi, là vô bổ! Chỉ xin đưa ra các câu hỏi gợi mở thế này:

+Bạn là sinh viên, người nghiên cứu hay người sản xuất ứng dụng? Bạn là người thích tìm tòi học hỏi hay muốn ứng dụng ngay vào sản phẩm dựa trên các modul có sẵn?

+Bạn cần chức năng gì chuyên biệt của ngoại vi/CPU... MCU? Chức năng ấy sẽ có trong các dòng sản phẩm MCU nào?

+Bạn quen sử dụng loại MCU nào? Sự thay đổi các MCU đối với bạn dễ hay khó?

+MCU bạn quen sử dụng có dễ dàng tìm được thị trường VN hay không?[1] Dòng sản phẩm ấy có khả năng bị gián đoạn không?

+Chân của  MCU bạn sử dụng dạng gì? Có dễ dàng để thiết kế hay không? Nguồn sử dụng để nuôi ngoại vi và CPU của MCU có dễ tạo hay ko?

... Còn một số điều nữa, nhưng theo tôi, ta chưa lấy làm chú trọng: như việc tiêu thụ năng lượng của MCU, đấy có thể do ở ta, các ứng dụng portable chưa ở mức cao! Hoặc các soft hỗ trợ lập trình firmware, debug, simulation... vì ta chưa thực hiện bản quyền nghiêm ngặt!...

  1. Những mầm sống mới:

Khi mà lực lượng sử dụng các chip MCU 8 bit vẫn còn chiếm đa số, các ứng dụng chưa ở mức cao cấp, tưởng như sự chuyển dịch công nghệ là không thể, thì nó vẫn âm ỉ chảy! Nhiều người làm kĩ thuật lâu năm vẫn ở mức hoài nghi về nền công nghiệp điện tử non trẻ ở ta, họ không tin trong vòng 5 năm tới ta có thể chế tạo được sản phẩm embedded nào ra hồn![2]@

Rồi nhen nhóm hi vọng khi cánh cửa WTO hé mở, rồi thấp thỏm đợi chờ lớp người đi du học, nghiên cứu ở các nước về phục vụ quê hương, rồi phấp phỏng mừng lo khi thấy lứa sinh viên đang học trong nước có những bước tiến dài,... những hoài nghi, cảm xúc chen lẫn,... cảm giác dường như đang dần tạo một hình thể mà trước nay, chưa thấy bao giờ! Người ta thấy thị trường điện tử nhộn nhịp lạ, mỗi tuần đều có những đợt hàng linh kiện đơn lẻ về nước, các diễn đàn về điện tử bắt đầu (hay tiếp tục) bàn về những ứng dụng dựa trên các lý thuyết mới, cao cấp, đem lại giá trị!

Khi những người đứng trên lập trường thiết kế hệ thống vẫn quen sử dụng các modul sẵn có của nước ngoài, vì tính ổn định, chính xác, hay thương hiệu, thì dân điện tử ở ta bắt đầu chú ý tới các lớp thấp OSI, và có kế hoạch tạo thành gói sản phẩm hoàn chỉnh,... trở ngại lớn nhất của họ, có lẽ là các chuẩn, điều kiện thực tế về mạch in, linh kiện[3]. Chuẩn thì vô tội vạ, theo chuẩn nào? Của hãng nào? Đấy cũng là vấn đề khiến người sản xuất bao giờ cũng phải tạo sản phẩm thích hợp nhiều chuẩn, nhiều phương thức, có khi lại đi xa quá một ứng dụng thực tế! Nó khiến sản phẩm cồng kềnh, lãng phí, nhưng lại thích hợp với các ứng dụng đa dạng của người dùng![4]

Các ứng dụng cao cấp[5] (như card PCI, thu thập và xử lý hình ảnh, âm thanh, CPU cho hệ thống wireless...) đòi hỏi cấu hình CPU mạnh, ngoại vi tương thích với nhiều device, PC, bộ nhớ ngoài có dung lượng lớn, tiêu thụ năng lượng ít, đồng thời giá thành không quá cao! Những yêu cầu khắc khe của khách hàng khiến các kĩ sư/người thiết kế nghĩ đến các dòng chip khác thích hợp cho sản phẩm của mình, không có sự chọn lựa nào là tối ưu, nhưng thích hợp đến mức chấp nhận được! Trong một bài báo của Texas Instruments [I]mà tôi đọc được , theo phân tích của tác giả, ông chọn DSP cho các ứng dụng yêu cầu thời gian thực cao, sau 3-4 năm, các lựa chọn của ông có lẽ sẽ không còn chính xác nữa, tuy nhiên, cách phân tích vẫn có giá trị trong thời điểm hiện tại. Những nhân điều khiển hỗ trợ phần cứng được lập trình, các cổng logic được thiết kế cho một nhiệm vụ, chức năng chuyên biệt tỏ ra hơn hẳn các dòng sản phẩm đa dụng.

  1. ARM hay Sự lựa chọn nào của bạn?

Nếu bạn quan tâm thực tế đang diễn ra về công nghệ bán dẫn trên thế giới, hẳn nhiên sẽ thấy sự phát triển dài của dòng sản phẩm ARM trong những năm gần đây. Nó trở thành một thương hiệu mà các công ty cấp phần mềm, cũng như hãng chế tạo phần cứng của các hệ thống nhúng quan tâm, coi là sản phẩm mũi nhọn của họ.

Vậy, nguyên nhân nào khiến ARM phát triển như vậy?

Trong một bài báo trên TechOnline [II], tác giả đã phân tích lý do vì sao ARM đang có một thị trường rộng lớn người dùng: trong nghiên cứu, ứng dụng nhỏ lẻ và cả trong công nghiệp! Những lợi ích lớn từ nhân điều khiển này mang đến như: giá thành thấp, tiêu tốn năng lượng ít, cấu trúc lệnh RISC 32 bit, và 16 bit (Thumb), hỗ trợ tính toán số thực, DSP (từ ARM9 trở về sau), tích hợp các chuẩn truyền thông thông thường (UART, USB, CAN, ...), hỗ trợ debug phần cứng với JTAG, tích hợp ISP, hỗ trợ DMA, bộ nhớ mở rộng, IO số lượng đáng kể, sử dụng cấu trúc bus AMBA[6] linh hoạt, tốc độ cao...[7] rất dễ dàng để phát triển SoC. Thêm vào đó, cộng đồng sử dụng ARM rất đông đảo, các hãng cung cấp MCU dựa trên kiến trúc ARM phong phú, dễ lựa chọn, các nhà cung cấp phần mềm (software), hỗ trợ phần cứng (board demo, ứng dụng), số lượng cũng không ít…

Đi kèm với sự phong phú về chủng loại, nhà sản xuất, người sử dụng cũng dễ dàng tìm cho mình bộ công cụ phát triển firmware thích hợp, nếu chi phí ban đầu lớn, có thể mua các IDE của những hãng cung cấp soft nổi tiếng[8] (Keil, IAR, Green Hills…), có giao diện thân thiện, dễ dùng, cách tiếp cận này đi từ thói quen sử dụng IDE của nhân 8 bit lên, hầu như không gặp trở ngại nhiều. Cách khác, bạn có thể sử dụng tool-chain của GNU, hoàn toàn miễn phí. Tất nhiên, sẽ có nhiều khó khăn khi tiếp cận với mã nguồn mở, không xây dựng các guide thân thiện, compiler không tối ưu code như các tool có license,… nhưng bạn cũng sẽ nhận được sự hỗ trợ rất lớn của cộng đồng GNU, và quan trọng, chi phí đầu tư của bạn sẽ giảm xuống đáng kể.

 

[Phần 2: Công nghệ SoC, hướng phát triển nào là thích hợp ở VN?]

 

Tài liệu tham khảo:

[I] Choosing the Right Architecture for Real-Time Signal Processing Designs- Leon Adams - Strategic Marketing, November 2002

[II]Criteria for ARM Migration as the Industry Standard MCU-Bahram Raad, Sr. Application Engineer, Oki Semiconductor, 2005

[III]Một số bài báo và trang web khác.

 


[1] Có thể bạn nói: mua hàng ở nước ngoài bây giờ dễ rồi, tôi đặt hàng qua mạng là được ngay! Bạn nên nhìn nhận lại ý này trong mục đích thương mại hoặc ứng dụng nhỏ lẻ, rồi đánh giá việc ấy cần thiết đến mức nào!

[2] Chỉ chú trọng vào các embedded system.

[3] Trong giai đoạn thử nghiệm, nhiều khi linh kiện lại rất quan trọng

[4] Mâu thuẫn này là mâu thuẫn nội tại chăng?

[5] Có thể gọi như thế trong tình hình hiện tại

[6] Advanced Microcontroller Bus Architecture

[7] Xem thêm ở chuyên trang vi điều khiển, phần ARM

[8] Ở ta vẫn quen dùng đồ không có license (crack)

 

[Góp ý về bài viết]