Announcement

Collapse
No announcement yet.

Thảo luận về hệ thống nhúng

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Thảo luận về hệ thống nhúng

    hi mọi người, mình không phải là 1 người pro về hệ thống nhúng và cũng không có ý định tương lai sẽ theo lĩnh vực này. Tuy nhiên, đối với các bạn mới vào khoa chưa hiểu rõ như thế nào là hệ thống nhúng thì mình hy vọng đây sẽ là topic sẽ khơi mào cho các bạn hiểu biết về hệ thống nhúng thảo luận nhằm giúp các bạn đó. Tránh việc theo đuổi mù quáng )

    Mình viết theo suy nghĩ + kiến thức củ chuối của mình chứ không có quy tắc nào cả nên mọi người thông cảm.

    1. Hệ thống nhúng làm gì?

    Ngày nay người ta cần nhiều chức năng tiên ích của máy móc để phục vụ bản thân, ví dụ như việc quan sát nhà từ xa bằng hệ thống camera. Nếu bình thường ta có thể dùng computer của chúng ta để thực hiện việc này rất tốt, tuy nhiên, chỉ có vấn đề về lãng phí tài nguyên vì giá thành hoặc công suất tiêu thụ của PC không được tối ưu cho lắm.

    Vì vậy người ta cần tới xây dựng tới một hệ thống "chuyên trách" công việc này, đó là một hệ thống chỉ cần tới vi xử lý vừa đủ, bộ nhớ vừa đủ, các giao tiếp vừa đủ và một thứ thuộc software "nhúng" vào hệ thống đó để điều khiển theo mục đích của người sử dụng. Và tạo nên thuật ngữ hệ thống nhúng.

    Ngày nay, với sự phát triển của nhiều loại vi xử lý nhỏ gọn, tiêu thụ năng lượng thấp và tốc độ nhanh như ARM thì người ta hoàn toàn có thể thực thi được một hệ điều hành (Operating System), trong đó, những chương trình được viết sẽ được quản lý gần giống như là các hệ điều hành trên PC. Tuy nhiên các hệ điều hành nhúng này có điểm đặc biệt là rất nhỏ gọn, một số phải tuân thủ tính thời gian thực,.... do bị giới hạn tài nguyên và loại công việc.

    VD về hệ thống nhúng nhỏ gọn mà được sử dụng nhiều nhất hiện nay chắc chắn là phone rồi

    2. Cần học gì ?

    Như đã nói ở trên thì có 2 công việc chính:
    + Build phần cứng của hệ thống nhúng
    + Build phần mềm nhúng
    ;;;;;;;;;
    Đối với sinh viên KTMT thì các kiến thức về kiến trúc máy tính và hệ điều hành sẽ được quan tâm rất nhiều. Làm phần cứng thì có vẻ là của dân điện tử quá ! Có thể khi các bạn học môn "vi xử lý vi điều khiển" các bạn phải làm hẳn cả mạch in rồi làm ứng dụng nhỏ nhỏ. Khi học môn lập trình nhúng thì khoa mình thì làm trên FPGA thôi. Tức là build phần cứng bằng phần mềm rồi đưa vào FPGA để có một hệ thống. Cụ thể là build vi xử lý NIOS II trên cycloneII của kit DE2.

    FPGA là một dạng phần cứng có thể cấu hình được. Khi bạn có một đoạn mã "miêu tả phần cứng", bạn nhúng vào FPGA thì lập tức FPGA sẽ biến thành mạch mà bạn đã miêu tả.

    Nếu ai đó lỡ "yêu" "thích" làm mạch thật rồi thì cũng có thể làm một mạch thật luôn. Nhưng phải cày bừa cho tốt ). Trang dientuvietnam.net sẽ rất hữu ích cho các bạn nào "lầm lỡ".

    ;;;;;;;;;;;;;;;

    Phần mềm nhúng thì tùy theo ứng dụng của mình là gì sẽ có liên quan tới một số phần cứng nhất định. VD như camera thì liên quan tới usb, audio thì liên quan tới audio card,... và người lập trình nhúng phải biết handle (tạm hiểu là nắm giữ để xử lý) - hiểu rõ bản chất giao tiếp của nó để điều khiển. Ngặt cái thông thường tất cả đều dựa vào ngôn ngữ C or C++ cả nên sẽ là bất tiện. Một số hệ điều hành có API thì rõ ràng dễ dàng hơn nhiều rồi.

    Đối với hệ thống nhúng thì làm trên linux dễ dàng hơn so với các hệ điều hành nhúng của Microsoft vì bản thân linux là hệ điều hành mở có một cộng đồng rất lớn.

    Vì thế tương ứng với hệ thống, hệ điều hành mà công việc lập trình nhúng có chia ra về level: lập trình dựa trên API như lập trình trên các điều hành của điện thoại như android, window mobile (đang hot), có thể lập trình ở mức thấp hơn là C/C++ cho các ứng dụng của hệ thống nhúng nhỏ hoặc có thể là lập trình driver cho các thiết bị vi mạch, .....

    Kết bài
    Mình viết hướng cho người mới nghe nên chắc không dễ đọc đối với những người đã biết.
    Nếu có sai xót xin các bạn cứ thẳng thắn chia sẻ, tránh sự hiểu nhầm đáng tiếc

    Hẹn hôm nào rảnh sưu tập lại các topic của các anh khóa 1 về thiết kế vi mạch cho các bạn biết luôn
    Last edited by 07520256; 12-10-2011, 09:58.

  • #2
    Nguồn http://tbvtsg.com.vn/show_article.ph...6049&ln_id=101

    HỆ THỐNG NHÚNG: HƯỚNG ĐI MỚI CỦA VIỆT NAM


    Xuất hiện từ những năm đầu thập niên 1960, hệ thống nhúng đang dần trở thành một ngành phát triển mạnh mẽ trong lĩnh vực công nghệ thông tin (CNTT), với những ứng dụng rộng rãi trong công nghiệp và đời sống.

    Theo các chuyên gia, ước tính đến năm 2010, doanh số của thị trường phần mềm cho hệ thống nhúng toàn cầu sẽ đạt cột mốc 6 tỷ đô-la Mỹ(1). Điều dự báo nói trên, cùng với sự xuất hiện ngày càng nhiều các đối tác lớn trong lĩnh vực này tại Việt Nam, đã mở ra một hướng đi mới cho thị trường phần mềm của chúng ta trong tương lai.

    Những đặc trưng của hệ thống nhúng

    Khác với những lập trình viên thông thường, một lập trình viên hệ thống nhúng phải có sự năng động và khả năng học hỏi tốt để có thể làm việc tối ưu.
    Hệ thống nhúng (embedded system) được định nghĩa là một hệ thống chuyên dụng, thường có khả năng tự hành và được thiết kế tích hợp vào một hệ thống lớn hơn để thực hiện một chức năng chuyên biệt nào đó. Khác với các máy tính đa chức năng (multi-purposes computers), ví dụ như máy vi tính cá nhân (PC), một hệ thống nhúng thường chỉ thực hiện một hoặc một vài chức năng nhất định. Hệ thống nhúng bao gồm cả thiết bị phần cứng và phần mềm, hầu hết đều phải thỏa mãn yêu cầu hoạt động theo thời gian thực (real-time). Tùy theo tính chất và yêu cầu, mức độ đáp ứng của hệ thống có thể phải là rất nhanh (ví dụ như hệ thống thắng trong xe hơi hoặc điều khiển thiết bị trong nhà máy), hoặc có thể chấp nhận một mức độ chậm trễ tương đối (ví dụ như điện thoại di động, máy lạnh, ti-vi).

    Để có thể dễ hình dung, ta xem ví dụ sau đây : một chiếc xe hơi trung bình có khoảng 70-80 chip vi xử lý (micro controller unit), mỗi bộ vi xử lý đảm nhiệm một nhiệm vụ, chẳng hạn như đóng mở cửa, điều khiển đèn tín hiệu, đo nhiệt độ trong/ngoài xe, hiển thị giao diện người dùng (dashboard), điều khiển thắng (nếu dùng hệ thống thắng điện)… Mỗi bộ phận như thế là một hệ thống nhúng, tất cả được thiết kế tích hợp vào một hệ thống chung lớn hơn, chính là chiếc xe hơi. Một ví dụ khác gần gũi hơn với cuộc sống hằng ngày, đó là những chiếc điện thoại di động. Các chức năng như điều khiển màn hình hiển thị, máy nghe nhạc và radio, bộ cảm ứng chụp hình, kết nối với máy tính và thiết bị ngoại vi, hoặc cao cấp hơn là kết nối với hệ thống định vị toàn cầu (GPS), tất cả đều là những hệ thống nhúng được tích hợp chung vào chiếc điện thoại.

    Do tính chất chuyên biệt của hệ thống nhúng và chúng thường được sản xuất với số lượng lớn nên các nhà sản xuất thường yêu cầu phải tối ưu hóa chúng nhằm giảm thiểu kích thước và chi phí sản xuất. Những yêu cầu đó đã đưa đến những khác biệt cơ bản trong lĩnh vực viết phần mềm cho hệ thống nhúng so với các phần mềm thông thường.

    Thứ nhất, có rất nhiều hãng sản xuất bộ vi xử lý, phần cứng và phần mềm trong thị trường hệ thống nhúng và ứng với mỗi nhà sản xuất lại có nhiều dòng sản phẩm, phong phú về chủng loại và giá thành. Các nhà thiết kế thường có những sự lựa chọn rất khác nhau về kiến trúc phần cứng và phần mềm cho các hệ thống của mình. Vì vậy, khác với những lập trình viên thông thường như lập trình web hay lập trình ứng dụng (application), chỉ cần thông thạo một vài ngôn ngữ lập trình, hệ điều hành và chương trình khung (framework) là có thể làm việc có hiệu quả, một lập trình viên hệ thống nhúng phải có sự năng động và khả năng học hỏi tốt để có thể làm việc tối ưu với :

    - Những bộ vi xử lý và phần cứng khác nhau : Texas Instrument, Freescale, ARM, Intel, Motorola, Atmel, AVR, Renesas…

    - Những hệ điều hành khác nhau : QNX, uITRON, VxWorks, Windows CE/XP Embedded, Embedded Linux, Osek, Symbian…

    - Những ngôn ngữ lập trình khác nhau : C/C++, B#, Ada, Assembly, PMC, LabView, PLC…

    Thứ hai, bên cạnh sự đa dạng về kiến thức chuyên môn của lập trình viên, còn có sự đa dạng về sản phẩm đầu ra như : y tế, công nghiệp ô-tô, tự động hóa, điện tử gia dụng, viễn thông, quốc phòng… Điều này đòi hỏi những người làm việc trong ngành hệ thống nhúng phải có khả năng thích ứng cao với nhiều dạng dự án và lĩnh vực hoạt động khác nhau.

    Thứ ba, các hệ thống nhúng thường cần có sự kết hợp liền lạc giữa phần cứng và phần mềm. Do đó, lập trình cho hệ thống nhúng cũng đòi hỏi phải có sự giao tiếp và làm việc mật thiết giữa đội ngũ lập trình viên và những người thuộc các lĩnh vực khác như tự động hóa, phần cứng, cơ điện tử… Tùy vào lĩnh vực, bên cạnh những kiến thức về CNTT thông thường, trong một số trường hợp người lập trình hệ thống nhúng cần phải bổ sung thêm một số kiến thức nhất định về trình biên dịch (compiler), xử lý tín hiệu số, điện tử và sơ đồ mạch (schematics)… để có thể làm việc có hiệu quả với những nhóm khác.

    Tất cả những khác biệt đó vừa là thách thức, khiến cho chỉ có ít người có thể trụ lại lâu dài, vừa là động lực, giữ chân những người thật sự đam mê, thích khám phá và không thích sự nhàm chán.

    Phân khúc thị trường hệ thống nhúng

    Hệ thống nhúng vốn rất đa dạng và phong phú, tuy nhiên có rất ít người biết được tầm quan trọng và sự hiện hữu của chúng trong thế giới quanh ta. Từ những hệ thống phức tạp như hàng không vũ trụ, phòng thủ quân sự, máy móc tự động trong công nghiệp, đến những phương tiện di chuyển thông thường như máy bay, xe điện, xe hơi, các trang thiết bị y tế trong bệnh viện, cho tới những thiết bị truyền hình và điện thoại di động chúng ta sử dụng hằng ngày, đâu đâu cũng có sự hiện diện của hệ thống nhúng. Trong hơn 9 tỷ bộ vi xử lý được sản xuất hằng năm, chỉ có khoảng 150 triệu bộ (1,5%) được sử dụng cho máy vi tính cá nhân, phần còn lại (98,5%) là dành cho hệ thống nhúng(2).

    Theo một thống kê khác của BCC Research Group(4) thì đến năm 2009, tổng doanh số của thị trường hệ thống nhúng trên toàn cầu sẽ đạt khoảng 88 tỷ đô-la Mỹ, với phần cứng chiếm 78 tỷ đô-la Mỹ và phần mềm chiếm 3,5 tỷ đô-la Mỹ, phần còn lại là các bo mạch nhúng. Tốc độ tăng trưởng trung bình hằng năm (AAGR) của phần mềm nhúng hiện đang đạt mức 16%.

    Hướng phát triển cho ngành phần mềm hệ thống nhúng tại Việt Nam

    Hiện nay, lĩnh vực hệ thống nhúng tại Việt Nam mới chỉ có những bước đi chập chững ban đầu, với rất ít sản phẩm “Made in Vietnam” có thể ứng dụng vào thực tế. Công việc chủ yếu vẫn là gia công phần mềm cho nước ngoài, trong đó chiếm tỷ lệ lớn nhất là các thị trường Nhật, Mỹ và châu Âu. Rất nhiều hãng sản xuất phần mềm lớn đã và đang “đổ bộ” vào thị trường Việt Nam để tận dụng lợi thế nguồn nhân lực giá rẻ và khai thác một thị trường tiềm năng mới như IBM, CSC, Altera…

    Tuy nhiên, Việt Nam hiện đang đối đầu với một thách thức lớn, đó là “đầu vào” của nguồn nhân lực cho thị trường phần mềm nói chung và phần mềm cho hệ thống nhúng nói riêng. Ở lĩnh vực phần mềm đơn thuần, một nhân viên mới vào nghề chỉ cần từ ba đến sáu tháng huấn luyện là đã có thể làm tốt công việc được giao. Còn trong ngành gia công phần mềm cho hệ thống nhúng, một nhân viên mới cần ít nhất sáu tháng đến một năm để có thể bắt đầu làm việc có hiệu quả, và từ hai đến ba năm mới có thể làm việc thành thạo. Việc tuyển người và đào tạo đã khó, việc giữ người lại càng khó hơn. Đặc thù của ngành này là đòi hỏi nhân viên phải có sự kiên trì và bền bỉ để nắm bắt những kiến thức cần thiết, đồng thời cần một thời gian khá dài mới có thể thấy được thành quả. Đó là lý do tỷ lệ chuyển và nghỉ việc trong lĩnh vực này là khá cao, trung bình 12-20%. Tuy nhiên, những người gắn bó được với ngành cũng có được những phần thưởng tương xứng, tích lũy được nhiều kiến thức về phần mềm và phần cứng liên quan, cũng như thường xuyên có được sự đổi mới, tránh nhàm chán trong công việc.

    Một điểm yếu khác góp phần làm hạn chế sự phát triển của ngành gia công phần mềm tại Việt Nam chính là nhân viên thiếu khả năng giao tiếp bằng tiếng Anh và các kỹ năng mềm như khả năng thuyết trình, làm việc theo nhóm, quản lý thời gian… Như trên đã nói, các nhân viên trong ngành hệ thống nhúng cần phải có sự giao tiếp chặt chẽ với khách hàng và các nhóm làm việc nước ngoài khác. Tiếng Anh và các kỹ năng mềm chính là tiếng nói chung giúp mọi người có thể hiểu và làm việc với nhau hữu hiệu. Tuy nhiên, hiện nay trình độ tiếng Anh của các sinh viên mới ra trường phần lớn không đáp ứng được yêu cầu của nhà tuyển dụng, còn các kỹ năng mềm thì không được chú trọng. Bên cạnh việc đào tạo về kỹ thuật, các công ty còn cần phải huấn luyện thêm khá nhiều về tiếng Anh và các kỹ năng mềm để những nhân viên mới có thể theo kịp và đáp ứng được những yêu cầu cơ bản trong một môi trường làm việc đa văn hóa.

    Muốn phát triển ngành phần mềm hệ thống nhúng lên một tầm cao mới như có thể sản xuất, ứng dụng thực tế và xuất khẩu phần mềm nhúng của Việt Nam, điều tiên quyết là phải tập trung phát triển lĩnh vực nghiên cứu và phát triển (R&D). Hiện nay chúng ta đã có một số chương trình hợp tác với các hãng lớn ở nước ngoài như Toshiba, Panasonic, STMicroelectronics, Samsung…(5) để phát triển theo hướng này. Tuy nhiên, những chương trình như thế vẫn còn rất hạn chế và không có một định hướng chiến lược chung. Việt Nam cần phải đẩy mạnh hơn nữa vấn đề định hướng nghiên cứu và phát triển cho ngành hệ thống nhúng từ trong trường đại học và các trung tâm nghiên cứu, cũng như trang bị được những kiến thức tổng quát về lĩnh vực này cho những sinh viên trẻ, đáp ứng được nhu cầu ngày càng cao của nhà tuyển dụng.

    Trong tương lai, nếu Việt Nam muốn nâng cao khả năng cạnh tranh với các nước chuyên gia công phần mềm lớn khác như Trung Quốc, Ấn Độ…, cần phải tập trung giải quyết bài toán tăng cường tính hiệu quả của nguồn nhân lực, phát triển tập trung theo chiều sâu thay vì chiều rộng như hiện nay. Trình độ chuyên môn của chúng ta trong lĩnh vực phần mềm nhúng hiện nay là tương đối “chắp vá” theo kiểu chỉ đâu làm đó, thiếu sự đầu tư và chiến lược phát triển hợp lý. Chúng ta cần có thêm nhiều chương trình đào tạo chuyên ngành về hệ thống nhúng từ trong trường đại học và các cơ sở đào tạo chính quy. Đồng thời, mở rộng cửa đón các nhà đầu tư để học hỏi những kỹ thuật mới và chuyển giao công nghệ, nhưng quá trình này phải thực hiện một cách có chọn lọc và kiểm soát, tránh tình trạng biến Việt Nam thành “bãi đáp” tiếp nhận những công nghệ lỗi thời như ở một số ngành công nghiệp khác.

    Hồ Nguyên Đạt

    Ông Hồ Nguyên Đạt hiện là kỹ sư cao cấp, Trưởng dự án - hệ thống nhúng của Công ty Global CyberSoft Việt Nam.

    Tài liệu tham khảo :
    (1) VDC’s report, “Embedded Integrated Computer Systems, 5th Edition”
    (2) Michael Barr & Anthony Massa, “Programming Embedded System”
    (3) European Commission report, “Study of Worldwide Trends and R&D Programmes in Embedded Systems in View of Maximising the Impact of a Technology Platform in the Area”
    (4) BCC Report G-229R, “Future of Embedded Systems Technology”
    (5) Celeste dela Torre, “Vietnam: Asia’s next superstar”

    Trích bài post của anh Lê Trường Sa - Khóa 1 http://www.uit.edu.vn/forum/index.ph...opic=15517&hl=

    Comment


    • #3
      Hi anh Nhân

      Cho em bổ sung 1 chút nha, có gì sai sót mong anh chỉ bảo

      Như đã nói ở trên thì có 2 công việc chính:
      + Build phần cứng của hệ thống nhúng
      + Build phần mềm nhúng
      Đầu tiên mình xin đề cập đến việc "Build phần mềm":

      --ở trong hệ thống nhúng loại phần mềm đầu tiên và cơ bản nhất mà bạn sẽ gặp phải đó là firmware. Đây là loại phần mềm cơ bản nhất có thể đc viết bằng ASM hay C... nhưng cho dù sử dụng ngôn ngữ gì thì yêu cầu đầu tiên là phải có kiến thức về phần cứng. Bởi bản chất của việc viết firmware là tạo ra các "trạng thái điều khiển" thông qua việc kích các Port/pin của vi điều khiển lên mức 1 hoặc 0... để điều khiển các ngoại vi gắp với các Port/pin đó

      -- Loại phần mềm thứ 2 là driver: Để hệ thống phần cứng của các bạn có thể kết nối với máy tính thì điều đầu tiên là máy tính của bạn phải có một driver để nhìn thấy thiết bị kết nối vào. <cái này mình chưa đụng đầu nhiều lắm, nên để các anh đi trước nói chắc rõ hơn>

      -- Các App dựa trên nền tảng hệ điều hành nhúng: Khi hệ thống của các bạn được tích hợp một hệ điều hành (OS) thì bạn có thể xây dựng các ứng dụng nhúng dựa trên các API của OS đó. Tương tự như xây dựng các App trên win hay linux. Và vấn đề chỉ nằm ở chỗ là bạn có thể nắm chắc các API của hệ điều hành để sử dụng. Ngoài ra còn 1 vấn đề khác đó là làm sao tích hợp đc hệ điều hành (OS) vào hệ thống của mình.

      Ngoài ra dĩ nhiên khi học để có thể viết đc các loại pm trên, thì bạn phải tự xây dựng cho mình 1 hệ thống nhúng để thao tác trên đó. Hoặc mua cho mình 1 kit thử nghiệm. Còn khi đi làm (cái này là mình nghe nói, chưa làm thực tế nên không dám chắc) thì bạn có thể lập trình dựa trên các hệ thống mà người khác đã xây dựng sẵn. Và dĩ nhiên dù là hệ thống như thế nào, thì điều đầu tiên bạn phải hiểu rõ nó... thông qua quá trình tự làm hệ thống, hoặc đọc tài liệu kĩ thuật đi kèm với hệ thống

      Và còn một điều nữa, để có thể viết đc phần mềm cho hệ thống nhúng... thì điều kiện tiên quyết là hệ thống đó phải có tối thiểu 1 con Vi điều khiển (micro controller), hoặc DSP (digital signal processor).

      Đây là nhược điểm lớn nhất của việc xây dựng hệ thống dựa trên phần mềm. Tuy nhiên ưu điểm của việc này đó là dễ dàng thay đổi hoạt động của hệ thống (thông qua việc thay đổi phần mềm)... hệ thống sẽ trở nên linh hoạt

      Build phần cứng của hệ thống nhúng

      Như đã nói ở trên, để viết phần mềm thì đầu tiên phải build đc phần cứng. Tức là xây dựng 1 cái mạch để có thể nạp phần mềm vào. Và nếu chỉ là build mạch, thì công việc của bạn sẽ giống như một kĩ sư điện tử. Tức là thiết kế mạch, hàn mạch... dĩ nhiên sẽ đơn giản hơn chút ít, do các mạch của bạn sẽ chỉ thuần là mạch số (Digital circuit) chứ ít khi dính dáng đến mach tương tự (Analog circuit). Bởi nếu có dính đến mạch tương tự thì bạn chỉ cần mua con ADC/DAC có bán sẵn ở thị trường và gắn vào

      Còn một cách khác để xây dựng một hệ thống nhúng đó là Build một hệ thống thuần là "phần cứng" (SoC,ASIC). Điều này nói đơn giản là bạn quẳng cả cái mạch của bạn vào 1 con chip cụ thể, dĩ nhiên một hệ thống phần cứng thường chỉ đáp ứng cho các ứng dụng cụ thể, có chức năng cố định chứ không thể uyển chuyển như bằng phần mềm. Bù lại, nó sẽ tốn ít năng lượng hơn, đáp ứng nhanh hơn.

      Trên thực tế, thường các mạch là sự kết hợp của 2 dạng thiết kế này để tăng hiệu suất làm việc

      Nói thêm 1 chút theo mình được biết, thì hiện tại... trong các phòng thí nghiệm người ta đang nghiên cứu một hệ thống dựa trên nền tảng phần cứng (cụ thể là FPGA) có cho phép nạp các "chương trình" vào tương tự như phần mềm. Cụ thể là, khi bạn muốn thực hiện C <-- A + B hệ thống này sẽ tạo cho bạn một mạch cộng thực sự với 2 input, và 1 output. Tuy nhiên khi bạn có yêu cầu 1 mạch nhân C <-- A*B, hệ thống sẽ tự build cho bạn 1 mạch nhân với 2 input, và 1 output. Nghe qua thì có vẻ giống FPGA (vì thực sự chúng sẽ hoạt động theo kiểu của FPGA) nhưng nên nhớ rằng FPGA là "nạp tĩnh" trước khi hệ thống hoạt động, còn ở hệ thống này ta sẽ phải "nạp động" trong khi hệ thống hoat động.

      Lựa chọn theo hướng nào "lập trình hệ thống nhúng","thiết kế vi mạch","robotic","robocon" là vấn đề của các bạn. Nhưng với kinh nghiệm hơn 3 năm "mài quần" ở CE... mình khuyên các bạn nên chọn hướng đi nào mà mình thực sự cảm thấy thích... thật sự cảm thấy đam mê và tự tin sẽ theo đuổi nó đến cùng. Bởi vì lĩnh vực này, không dễ xơi lắm đâu .

      Còn để biết bạn có thích lĩnh vực này hay không? hãy tự hỏi mình, "mình cảm thấy thích môn kiến trúc máy tính?", "mình cảm thấy thích môn hệ điều hành?", "mình học tốt tin đại cương?" và "mình cảm thấy hệ thống số khá hay?", nếu 3/4 câu trả lời là có thì bạn có thể tự tin bước một chân vào lĩnh vực này rồi. Dĩ nhiên nếu không trả lời đc câu nào, bạn cũng phải bước vào lĩnh vực này (ít nhất là phải học) nếu bạn là sinh viên khoa KTMT. Qua thời gian học, hiểu hơn các bạn sẽ thích hơn... còn nếu vẫn không thích. thì yên tâm là khoa vẫn có một số hướng học "ngoài luồng" để các bạn theo đuổi (thiết kế mạng, lập trình web, lập trình thiết bị di động...)

      PS: cái này là mình viết theo những cái mình hiểu nên nếu có gì sai sót mong các bạn góp ý.
      Một khẩu súng giữ hai trời Nam Bắc,
      Một dấu chân in màu đất hai miền.

      ------------------------------------------------------

      Comment


      • #4
        cái này sinh viên khoa cnpm theo thì có hợp không nhỉ?
        Em nghe mấy anh nói nó liên quan nhiều tới bên kỹ thuật hơn nhỉ.
        Tôi đã chọn và tôi sẽ đi bằng mọi cách.

        Comment


        • #5
          Originally posted by 10520085 View Post
          cái này sinh viên khoa cnpm theo thì có hợp không nhỉ?
          Em nghe mấy anh nói nó liên quan nhiều tới bên kỹ thuật hơn nhỉ.
          Rất được chứ em, bây giờ lập trình trên mobile đang hot mà.
          Khi lập trình những ứng dụng cho di động em không cần phải hiểu rõ phần cấu tạo bên trong của hệ thống.

          Comment


          • #6
            Càm ơn bài viết của mấy anh, nó rất hữu ích. các anh có thể nói luôn các nghành về "thiết kế vi
            mạch","robotic","robocon" đc không ak
            not..

            Comment


            • #7
              Originally posted by 11520338 View Post
              Càm ơn bài viết của mấy anh, nó rất hữu ích. các anh có thể nói luôn các nghành về "thiết kế vi
              mạch","robotic","robocon" đc không ak
              http://forum.uit.edu.vn/threads/2433...iet-ke-vi-mach => thiết kế vi mạch
              Một khẩu súng giữ hai trời Nam Bắc,
              Một dấu chân in màu đất hai miền.

              ------------------------------------------------------

              Comment


              • #8
                Những người như chúng tôi cần những kiến thức này. Thanks all

                Comment


                • #9
                  Thank mấy huynh nhiều....
                  **************************************
                  Doan Duy
                  Computer Engineering Department - University of Information Technology
                  Email: duy.doan@icdrec.edu.vn or duyd020990@gmail.com

                  Comment


                  • #10
                    Hix... Cả một vấn đề lớn...
                    Blog Hứa Anh Tôi trên mạng xã hội: Hứa Anh + | FaceBook | Thủ thuật Máy tính

                    Comment


                    • #11
                      chà.e thấy học phần cứng coi bộ phải học nhiều ngôn ngữ và có 1 số kiến thức nhất định nhỉ.các bác có thể nói thêm 1 chút về vấn đề ngoài luồng ko?học kĩ thuật máy tính nếu thích cái khác thì sao các bác?
                      visit me at solitarywolf-it.blogspot.com

                      Comment


                      • #12
                        Originally posted by 11520056 View Post
                        chà.e thấy học phần cứng coi bộ phải học nhiều ngôn ngữ và có 1 số kiến thức nhất định nhỉ.các bác có thể nói thêm 1 chút về vấn đề ngoài luồng ko?học kĩ thuật máy tính nếu thích cái khác thì sao các bác?
                        bạn thích cái nào, cái khác là cái gì?:sexy:
                        Một khẩu súng giữ hai trời Nam Bắc,
                        Một dấu chân in màu đất hai miền.

                        ------------------------------------------------------

                        Comment


                        • #13
                          Originally posted by 11520056 View Post
                          chà.e thấy học phần cứng coi bộ phải học nhiều ngôn ngữ và có 1 số kiến thức nhất định nhỉ.các bác có thể nói thêm 1 chút về vấn đề ngoài luồng ko?học kĩ thuật máy tính nếu thích cái khác thì sao các bác?
                          Chào bạn trước đây mình cũng như bạn cứ muốn học cho xong 2 năm đại cương rồi chuyển qua ngành khác học vì trước đó mình rất thích phần mềm. Một vấn đề khác nữa là tại vì điểm đầu vào của KTMT tương đối thấp so với các ngành khác nên khi nói với ai đó rằng mình học khoa kỹ thuật thì cũng cảm thấy có cái gì đó thua người ta. Nhưng đó chỉ là những suy nghĩ hết sức trẻ con của mình. Và từ khi mình tự tìm hiểu môn vi điều khiển rồi thì mình đã biết thật sự mình không đi sai đường. Mình cảm thấy có một niềm đam mê mãnh liệt nào đó rất lớn với các con vi điều khiển, các mạch điện mà mình thiết kế. Cho dù những thứ mình đang làm thật bình thường và cơ bản người khác chỉ xem như đồ chơi con nít. Nhưng với mình thì cảm thấy nó rất tuyệt. Và bây giờ cho dù có như thế nào đi nữa thì mình cũng sẽ không chuyển một ngành nào khác hết.
                          Cuối cùng tôi muốn nói với bạn rằng bạn chưa thích ngành này là tại vì bạn chưa thật sự hiều về nó. Năm 2 bạn hãy lập một nhóm khoảng vài chiến hữu rồi mua linh kiện về lắp thử đi. Khi thấy mạch đầu tiên của bạn chạy thì cảm súc lúc đó sẽ nói cho bạn biết là bạn có yêu nghề này hay không hà.
                          Còn nếu bạn thật sự không thích ngành này thì bạn cứ yên tâm vì khi học ở khoa bạn vẫn có thể làm bên lập trình c/c++, lập trình web, hay lập trình cho điện thoại di động mà,...
                          TRẦN QUANG VINH
                          ĐT: 01688200 sáu sáu sáu
                          mail: vinhtq191@gmail(dot)com

                          Comment


                          • #14
                            Chào các bạn, mình hiện tại đang tìm hiểu về "vấn đề tương thích điện từ trong hệ thống nhúng" cho đề tài tiểu luận.
                            Mọi người ai biết thì chỉ dùm mình với, mình đang cần gấp để hoàn thành đề tài. Mọi người ai có thông tin hay Bất kỳ tài liệu nào liên quan đến vấn đề trên thì post lên dùm mình nhé, link forum, topic, hay ebook, Tiếng việt hoặc có thể bằng tiếng anh càng tốt.

                            Thanks mọi người nhiều.,

                            Comment


                            • #15
                              Hệ thống nhúng trong ô tô

                              Hệ thống nhúng được ứng dụng nhiều trong ô tô --> Ai cũng biết

                              Nhưng bản thân nó được hình dung như thế nào để cho một người căn bản biết về vi xử lý vi điều khiển hiểu? Lại là chuyện khác. Mình xin post cách nhìn của mình đối với những gì mình biết được như sau. Chắc chắn nó chưa đầy đủ và có thể có sai xót thì có thể mời các bạn đóng góp thêm nhé !

                              Trong một chiếc ô tô như các bạn đã biết đối với từng bộ phận đều có cảm ứng riêng và phần cơ khí riêng của nó. VD: Kính xe ô tô có hệ thống để gập kính lại, khi đóng cửa ô tô kết quả đóng an toàn hay không được hiển thị về dashboard của tài xế, hệ thống cơ khí của bộ phận thắng, động cơ, máy lạnh, radio, tốc độ của xe đang chạy, nhiệt độ động cơ... tất cả đều được quản lý.

                              Mỗi bộ phận được đặt ở những nơi khác nhau trong chiếc ô tô. Có một bộ phận điều khiển được đặt tại một nơi nào đó trên xe và tất cả các thành phần này có đường bus để truyền tải tín hiệu về nó để nó xử lý. => Hệ thống hoạt động tốt. Vấn đề ở chỗ, bộ phận điều khiển đó có bao nhiêu input để các bộ phận gửi tín hiệu về? Liệu nó đáp ứng đủ hay không nếu càng ngày ta càng tăng nhiều tính năng khác cho ô tô. Thêm nữa, cả đám dây nhợ lằng nhằng đó khó khăn để gọn lại và không hề dễ dàng để sửa chữa mỗi khi nó hỏng hóc.

                              Vì vậy, cần có một đường bus chung để truyền tải tín hiệu từ các bộ phận đó tới bộ điều khiển chung. Đó là lý do để ra đời mạng CAN.

                              Mạng CAN có thể được phát biểu như sau:


                              (hình lấy từ http://www.picvietnam.com)

                              Trong đó CAN station chính là các bộ phận của xe hơi mà ta đã đề cập ở trên, nguyên tắc của mạng này rất đơn giản. Trạm A muốn lấy dữ liệu từ trạm C thì A phát tín hiệu trên toàn node (ý nghĩa tương tự như broadcast trong mạng bình thường) là nó cần lấy dữ liệu từ C. Tín hiệu là là một dãy các bit có độ dài được quy ước -- gọi là frame. Tất cả các trạm còn lại nhận được frame này. Tất cả cùng phân tích xem, trong frame đó, vị trí bit quy định address cần được truy vấn thông tin là gì, nếu đúng là bản thân nó thì nó sẽ xử lý nếu không thì nó bỏ qua tín hiệu này. ---> Công việc này được gọi là filter. Kế đến, nó sẽ trả lời lại bằng cách gửi lên toàn mạng frame có chứa dữ liệu cần gửi. Và các node trên mạng lại filter, kiểm tra xem có phải nó gửi cho mình không, nếu đúng thì xử lý .....
                              Các frame này ta có thể tự quy ước vị trí bit nào, dùng để làm gì. Tuy nhiên theo chuẩn quốc tế người ta đưa ra các quy ước chung dựa vào hệ thống ISO. Sở dĩ mình gọi là các quy ước chung là vì sự phát triển theo bậc giữa các đời chuẩn. Không thể bắt mạng CAN trong chiếc ô tô năm 1995 phải theo chuẩn của chiếc xe ô tô năm 2012 được.... Chung quy lại ta có thể sử dụng hình dưới biểu thị một frame dữ liệu. Trong đó có (những) bit bắt đầu, và (những) bit kết thúc. Kèm theo nó một loạt thông tin của nơi gửi, nơi đến, data theo một trình tự sắp xếp sẵn.

                              (hình được trích từ diễn đàn www.picvietnam.com)

                              Giờ ta quay lại vấn đề nhúng trong ô tô.

                              Đối với mỗi chức năng của ô tô ta có thể xem là một hộp đen bao gồm các input và output. Input dùng để lấy dữ liệu từ các sensors và output sẽ kết nối với CAN bus để truyền dữ liệu đi. Hộp đen đó người ta gọi là ecu.
                              ECU sẽ có chức năng truyền tải dữ liệu từ sensor về cho bộ điều khiển mỗi khi yêu cầu. Theo mình biết có các chức năng như truyền dữ liệu trực tiếp từ sensor (như cảm biến gia tốc, nhiệt độ, xăng, cảm biến đóng cửa ...), truyền dữ liệu ghi trong bộ nhớ (thông thường là lỗi của xe được lưu trong bộ nhớ - lỗi được phát sinh từ nhiều nguyên nhân và người làm ecu phải cover hết các trường hợp đó và đưa ra mã số lỗi đã được quy ước ứng với từng lỗi).

                              Theo như những gì đã nói ở trên mạng CAN có thể giải quyết được vấn đề:
                              1) Dashboard (bảng nhìn cho bác tài) cần phải lấy dữ liệu của các ecu
                              2) Test lỗi

                              ++1) Dashboard sẽ được xem như là một station trong hệ thống mạng CAN, nhưng nó sẽ là nơi phát lệnh để lấy dữ liệu từ các ecu về để hiển thị
                              ++2) Thiết bị chuẩn đoán lỗi ô tô sẽ là thiết bị có thể kết nối với mạng CAN trong ô tô, nó sẽ có các chức năng truy vấn từng ecu để kiểm tra xe có lỗi hay không?

                              Nói đến đây, có lẽ các bạn đã căn bản mường tượng ra được hệ thống nhúng trong ô tô như thế nào. Theo mình thì có thể nói nó có mặt tại tất cả các chức năng của ô tô.

                              P/s: Gõ tới đây cũng muốn run cả tay rồi, hy vọng giúp ích cho các bạn ktmt khóa dưới nhé !

                              Comment

                              LHQC

                              Collapse
                              Working...
                              X